根据Joshu Bloch的Effective Java,“仅提供静态工厂方法的主要缺点是没有公共或受保护的构造函数的类不能被子类化。”有人可以解释一下这是什么意思吗?特别是粗体字。如果没有提供静态工厂方法,则不能将带有私有构造函数的类子类化,对吗?

最佳答案

仅提供静态工厂方法是没有公共类
  或受保护的构造函数不能被子类化。


每当调用子类的构造函数时,也会调用父类的构造函数。在没有受保护的或公共的构造函数的情况下,子类化或扩展类将毫无意义。因此不利。

09-26 02:32