如果没有抽象成员,基类应该标记为抽象吗?

kel*_*oti 4 c# java abstract-class

如果一个类没有抽象成员,那么它是否可以被标记为抽象?即使没有直接实例化的实际理由呢?(除了单元测试)

And*_*mas 8

是的,即使在没有抽象方法的情况下,明确标记为不应实例化的基类也是合理和有益的.

  • 它强制执行通用指南,以使非叶类抽象化.
  • 它可以防止其他程序员创建该类的实例.这可能会使您以后更容易添加抽象方法.

  • 这句话来自Scott Meyers的"更有效的C++".由于operator =(),部分原理特定于C++.但另一部分是与语言无关的:使用此指南迫使您在需要时识别有用的抽象,而不是之前.谷歌搜索"使非叶类抽象"导致至少一个链接到迈耶斯的章节. (2认同)

Jef*_*ard 5

你想让那个类有一个实际的实例吗?如果是,则不要将其标记为抽象。如果不是,则将其标记为抽象。