次のクラスがあるとしましょう
class animal
{
public string name;
public animal(string name)
{
this.name = name;
}
}
そしてまた
class dog : animal
{
public string breed;
public dog(string name, string breed): base(name)
{
this.breed = breed;
}
}
そして最後に
class poodle : dog
{
public poodle(string name, string breed, int hairLength): base(name, breed)
{
//in here, name is = null for some reason.
}
}
問題は、継承の3レベルの階層がある場合、基本コンストラクター( )がコンストラクター(name == null)animal
の後に呼び出されるように見えることです。poodle
しかし、poodle
コンストラクターでは、基本コンストラクターなどで設定されたいくつかのプロパティにアクセスしたいと思うかもしれません。
誰かがこれをどのように行うことができるか、あるいはおそらくこの問題を解決するためのはるかに優れたコーディング方法を知っていますか?(私が考えることができる唯一の解決策は、実際にはコンストラクターを使用するのではなく、別個のinitialize()メソッドを使用することです。
ありがとう!