abstract
我是否应该总是用关键字注释一个仅通过设计保护构造函数的类?为什么?
假设该类没有抽象成员。
如果没有,你能举一些例子吗?
不。只有受保护的构造函数的类型仍然是可创建的——通过该类型的静态工厂方法,或通过反射(包括,作为一种选择,完全跳过构造函数)。
抽象类型永远不可创建。
将类型标记为抽象:如果它是抽象的。那么:存在该类型的对象(而不是子类)有意义吗?
不,您不应该按设计这样做,因为这不是abstract
类的用途。
在我看来,一个抽象类用于表示一堆在逻辑视图中具有相同类型的类。这意味着这一堆类在属性或行为中都很常见。它不用于表示具有“私有”构造函数的类,并且不能在类本身之外创建。