错误 CS0534 - 没有实现继承的抽象成员

ehh*_*ehh 0 c# abstract-class

我有以下 4 个课程:

public abstract class Base
{
     abstract public void DoIt();
}

public class TW: Base {}
public class RW: TW 
{
    public override void DoIt() {}
}
public class IW: TW
{
    public override void DoIt() {}
}
Run Code Online (Sandbox Code Playgroud)

用法:

var transaction = new TW();
transaction.DoIt();
Run Code Online (Sandbox Code Playgroud)

我不清楚为什么会出现以下错误:

错误 CS0534 'TW' 没有实现继承的抽象成员 'Base.DoIt()'

如果所有“叶子”派生类(RW 和 IW)都覆盖它,为什么(TW)还需要覆盖它?我可能会遗漏一些东西,因为我记得这不是必须的。我不想在 TW 中覆盖它,因为我没有任何有效的实现可以在那里编写。

我期待有能力写出类似的东西:

public override abstract void DoIt();
Run Code Online (Sandbox Code Playgroud)

什么是正确的实现?

更新:

根据我得到的答案,由于某些限制,我必须按以下方式实施它:

public override void DoIt()
{
    //Not getting to this code, it is overriden by the derived classes
}
Run Code Online (Sandbox Code Playgroud)

可以接受吗?如果我遇到这种情况,我觉得架构中的某些东西可能是错误的。

Fra*_*ank 5

你也必须让 TW 成为一个抽象类。

public abstract class Base
{
     public abstract void DoIt();
}

public abstract class TW: Base {}

public class RW: TW 
{
    public override void DoIt() {}
}

public class IW: TW
{
    public override void DoIt() {}
}
Run Code Online (Sandbox Code Playgroud)