3

也许标题令人困惑。

让我给你举个例子:

public abstract class Base
{
    protected abstract void DoSomething();
}

public abstract class BaseA : Base
{
    protected abstract void DoSomething();
}

public class ClassA1 : BaseA
{
    protected override void DoSomething()
    {
        // do something!
    }
}

public class ClassA2 : BaseA
{
    protected override void DoSomething()
    {
        // do something!
    }
}

使用此代码,这是与我的真实项目类似的场景。我有一个基类。但我意识到基类需要再次抽象,所以方法 DoSomething 需要再次抽象,当我有具体类时我想重写它。

是一个好习惯吗?还是因为我将方法设置为抽象两次而出现问题?

4

1 回答 1

3

你真的不需要在BaseA;上声明方法。它的所有子类都将通过其父类继承它。

当您想在子类上将具体方法重新定义为抽象时,Anabstract override 很有用。

于 2012-07-16T01:23:55.607 回答