小编hel*_*ios的帖子

base.Method()没有调用多级继承?

我搜索过但无法找到解决问题的方法.我的场景非常简单:

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类的方法被跳过了.这不可能吗?我认为这是继承/多态的全部要点.提前致谢!

.net c# inheritance base-class

6
推荐指数
1
解决办法
7953
查看次数

标签 统计

.net ×1

base-class ×1

c# ×1

inheritance ×1