c# – 没有body的虚拟方法

我正在看一个抽象类中的一些代码:

public virtual void CountX(){}

public virtual void DoCalculation() { ...code}

为什么要在抽象类中声明一个空的虚拟方法,如果不是必须在派生类型中重写它呢?

最佳答案
正如@Adam告诉你的,很多情况是有道理的。当您创建一个抽象类时,这是因为您要为从该类派生的所有类创建一个公共接口;然而,在这种继承级别下,您将没有足够的信息来为该方法创建工作代码。

例如,如果使用getArea()方法创建类图,则无法编写正确计算所有图形面积的代码。您必须等待编写矩形或圆形(两者都从图中得出)的代码,以便能够为它们编写工作代码。

转载注明原文:c# – 没有body的虚拟方法 - 代码日志