抽象类vs私有构造函数

32 java abstract-class private-constructor

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

  1. 使班级abstarct.
  2. 使用私有构造函数.

哪两个更好的方式?

Bat*_*tty 47

你应该去private构造函数.

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

来自有效java的第4项:

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