我搜索过但无法找到解决问题的方法.我的场景非常简单:
public class A
{
public virtual void MethodOne()
{
Console.log( "A" );
}
}
public class B : A
{
public override void MethodOne()
{
base.MethodOne();
Console.log( "B" );
}
}
public class C : B
{
public override void MethodOne()
{
base.MethodOne();
Console.log( "C" );
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是有一个C类实例(我们将它命名为'instanceC')调用它的父类和它的祖父母的重写方法.所以我期待这个:
instanceC.MethodOne();
// Output:
// "A"
// "B"
// "C"
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个:
instanceC.MethodOne();
// Output
// "A"
// "C"
Run Code Online (Sandbox Code Playgroud)
B类的方法被跳过了.这不可能吗?我认为这是继承/多态的全部要点.提前致谢!