0

私は1つの親クラスと1つの子クラスを持っています。親には、そのパラメーターを初期化するコンストラクターがあります。

私の質問は次のとおりです。子は親のコンストラクターにどのように見えますか? 子のコンストラクターを定義できますか?

4

5 に答える 5

1

クラスbase(...)の ctor で使用できます。

前歯:

public class Child : BaseClass 
{
    public Child() : base(/*some parameters*/) //CALLING BaseClass parametrized ctor
    {  
    }
}

特定のパラメーターが必要ない場合は、何しないでください。クラスを呼び出すと、途中BaseClassでデフォルトctorが呼び出されるため、注意してください。ctorChild

于 2012-06-18T09:15:09.653 に答える
1

この継承のサンプルは次を示しています。

  • 子の新しいコンストラクターから親コンストラクターを呼び出す方法
  • 親コンストラクターに必要なパラメーターを渡す方法

コードサンプル:

public class Parent
{
    private object _member;

    public Parent(object member)
    {
        this._member = member;
    }
}

public class Child : Parent
{
    public Child(object member)
        : base(member)
    {
    }
}
于 2012-06-18T09:16:10.047 に答える
0

子のコンストラクターを定義する必要があります。: base()コンストラクターのプロトタイプとその実装の間を使用して、基本クラスのコンストラクターを呼び出すことができます。

public class Parent {
  public Parent() {
    ...
  }
}

public class Child : Parent {
  public Child() : base() { // calls Parent.ctor
  }
}
于 2012-06-18T09:15:23.260 に答える
0

子クラスのコンストラクターを非常にうまく定義できます。デフォルトのコンストラクターは、クラスのコンストラクターを定義しない場合にのみ提供されます

一方、親のコンストラクターを検索する方法については

パラメーターなしのコンストラクターが親クラスに存在するかどうかを確認し、ない場合は (コンパイラーが同じことを知らせてくれます)、そうでない場合は、次のようなパラメーターを使用して親コンストラクターを呼び出す必要があります。base("This is the string parameter")

何か他のことを意味する場合は、質問を更新してください。

于 2012-06-18T09:21:41.417 に答える
0

もちろん。

あなたは「ベース」キーワードの後です。

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;
    }

}
于 2012-06-18T09:15:54.913 に答える