让我们看看下面的类结构:
abstract class Base {
public abstract void DoSth();
}
class Derived1 : Base {
public override void DoSth() {
}
}
这些是某些层次结构的基类。现在,让我们假设,我们想要提供另一个派生自Derived1
(我们称之为Derived2
)的类,它不应该使用DoSth
提供的默认实现Default1
。例如,Derived1 涵盖了 98% 的情况,但在剩下的 2% 中,这种解决方案是不可接受的或危险的。
最好的解决方案是通知派生自 的人Derived2
,他应该在编译期间实现 DoSth。怎么做?