public class Father
{
// static string TYPE = "FATHER";
public Father()
{
//Console.WriteLine("ctor");
}
public virtual void Print()
{
Console.WriteLine("I'm father");
}
}
public class Son:Father
{
public override void Print()
{
base.Print();
Console.WriteLine("I'm son");
}
}
正如我们知道,如果我们调用Son.Print(),它会打印出“我是父亲”和“我是儿子”.And Father.Print()是一个实例方法,我们需要先创建一个实例。所以这就是问题,谁创建它?显然,不是我... 或子拥有两个打印methodtable.One方法可以访问父亲,anthor可以自己访问? 哪一个是对的?或者都不对?请告诉我!谢谢!关于.Net继承的问题
小问候,但儿子:父亲在OOP意义上是一个非常糟糕的继承例子 –
如果您将Son类作为子类型访问,那么您将获得父类和子类数据和行为。 –
事实上,这个例子本身可能是造成混淆的原因,而不是一般的继承。 “儿子”正在印刷这两种说法,因为在这种情况下,“儿子”就是“父亲”。虽然这对于一部分人群来说是正确的,但这种继承层次所暗示的并不是普遍的正确。 “儿子”和“父亲”应该是接口,而不是继承类。每个Person实体都应该实现适当的接口。这是如何不使用继承的一个很好的例子。 (虽然我确信这里有一个很好的“继承”玩笑,在这里关于父亲和儿子...) – David