抽象类vs私有构造函数

时间:2013-12-15 09:55:57

标签: java abstract-class private-constructor

我有一个只有静态方法和字段的java类,所以我不希望为此创建任何对象。 我可以通过两种方式实现这一目标,

  1. make class abstarct。
  2. 使用私有构造函数。
  3. 两者中哪一种更好?

1 个答案:

答案 0 :(得分:41)

你应该使用private构造函数。

如果您的类是抽象的,则可以扩展它并创建对象。根据我对这个问题的理解,你想要的是不可实例化的类。

来自Item 4 of Effective java

  

尝试通过使类抽象来强制执行非实例化不起作用。该类可以是子类,子类实例化。此外,它误导用户认为该类是为继承而设计的