抽象方法覆盖抽象方法

Alo*_*kin 5 c# overriding abstract

public abstract class A
{
    public abstract void Process();
}

public abstract class B : A
{
    public abstract override void Process();
}

public class C : B
{
    public override void Process()
    {
        Console.WriteLine("abc");
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码抛出编译错误:'B'不实现继承的抽象成员'A.Process()'.

有没有办法做到这一点?

Raz*_*zie 13

只要在B类中完全省略该方法.B无论如何都从A继承它,并且因为B本身是抽象的,所以你不需要再次实现它.


Rus*_*ull 8

在VS2008中适合我; 没有错误,没有警告.但是,没有理由在B中使用'覆盖'.这段代码是等效的:

public abstract class A
{
    public abstract void Process();
}

public abstract class B : A
{
}

public class C : B
{
    public override void Process()
    {
        Console.WriteLine("abc");
    }
}
Run Code Online (Sandbox Code Playgroud)