【问题标题】:abstract class vs private constructor抽象类与私有构造函数
【发布时间】:2022-01-22 14:02:11
【问题描述】:

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

  1. 使课程抽象化。
  2. 使用私有构造函数。

这两种方法哪个更好?

【问题讨论】:

标签: java abstract-class private-constructor


【解决方案1】:

您应该使用private 构造函数。

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

来自Item 4 of Effective java

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

【讨论】:

  • 该链接无法访问,可能仅适用于 Safari Books Online 的订阅者。这是一个关于这个主题的博客:medium.com/@biratkirat/…
猜你喜欢
  • 2015-06-18
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多