也许标题令人困惑。
让我举个例子:
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需要再次抽象,我想在具有具体类时覆盖它。
这是一个好习惯吗?或者是否存在问题,因为我已将方法设置为抽象两次?
答案 0 :(得分:3)
你真的不需要在BaseA
上声明方法;它的所有子类都将通过其父类继承它。
当您想要在子类上将具体方法重新定义为抽象时,abstract override
is useful。