可以说我有以下课程
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.
}
}
问题是当我有一个三级继承层次结构时,基本构造函数(animal
)似乎在poodle
构造函数之后被调用(name == null)。但是在poodle
构造函数中,我可能想要访问在基本构造函数中设置的一些属性,等等。
有谁知道如何做到这一点,或者可能是解决此问题的更好的编码实践?(我能想到的唯一解决方案不是真正使用构造函数,而是有一个单独的 initialize() 方法。
谢谢!