可以在派生类中覆盖抽象类,而无需在基类中实现

use*_*112 4 c# oop inheritance

我有一个抽象类,A有一个抽象方法.

此类由另一个类继承B,不应实现抽象方法.

现在另一个类C需要从类继承B并实现类中定义的方法A.

我怎样才能做到这一点?

Fis*_*rdo 11

B如果它不打算实现其基类的所有抽象成员,则需要将类标记为抽象类.然后,在课堂上正常覆盖C.

例:

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

public abstract class B : A
{
    // Empty
}

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

  • @ user490112:我认为你已经过度复杂了.如果`A`声明了一个`virtual`或`abstract`方法,那么层次结构中较低的任何类(`B`,`C`或其他任何来自`A`的类)都可以覆盖它. (3认同)