私は1つの親クラスと1つの子クラスを持っています。親には、そのパラメーターを初期化するコンストラクターがあります。
私の質問は次のとおりです。子は親のコンストラクターにどのように見えますか? 子のコンストラクターを定義できますか?
私は1つの親クラスと1つの子クラスを持っています。親には、そのパラメーターを初期化するコンストラクターがあります。
私の質問は次のとおりです。子は親のコンストラクターにどのように見えますか? 子のコンストラクターを定義できますか?
子クラスbase(...)
の ctor で使用できます。
前歯:
public class Child : BaseClass
{
public Child() : base(/*some parameters*/) //CALLING BaseClass parametrized ctor
{
}
}
特定のパラメーターが必要ない場合は、何もしないでください。クラスを呼び出すと、途中BaseClass
でデフォルトctor
が呼び出されるため、注意してください。ctor
Child
この継承のサンプルは次を示しています。
コードサンプル:
public class Parent
{
private object _member;
public Parent(object member)
{
this._member = member;
}
}
public class Child : Parent
{
public Child(object member)
: base(member)
{
}
}
子のコンストラクターを定義する必要があります。: base()
コンストラクターのプロトタイプとその実装の間を使用して、基本クラスのコンストラクターを呼び出すことができます。
public class Parent {
public Parent() {
...
}
}
public class Child : Parent {
public Child() : base() { // calls Parent.ctor
}
}
子クラスのコンストラクターを非常にうまく定義できます。デフォルトのコンストラクターは、クラスのコンストラクターを定義しない場合にのみ提供されます
一方、親のコンストラクターを検索する方法については
パラメーターなしのコンストラクターが親クラスに存在するかどうかを確認し、ない場合は (コンパイラーが同じことを知らせてくれます)、そうでない場合は、次のようなパラメーターを使用して親コンストラクターを呼び出す必要があります。base("This is the string parameter")
何か他のことを意味する場合は、質問を更新してください。
もちろん。
あなたは「ベース」キーワードの後です。
public class Fruit
{
string TypeOfFruit { get; set; }
public Fruit (string typeOfFruit)
{
TypeOfFruit = typeOfFruit;
}
}
public class Apple : Fruit
{
string AppleType { get; set; }
public Apple(string appleType) : base("Apple")
{
AppleType = appleType;
}
}