在Java中防止实例化的oop正确方法
如果我们想防止在Java中实例化对象,我们可以使用几种方法,其中最明显的是:
- 抽象关键词
- 私有/受保护构造函数
假设类不包含抽象方法,我们使用abstract关键字来阻止对象的创建。这种方法不正确吗(我指的不是语法正确性,而是语义正确性)?或者在这种情况下使用私有构造函数更好
谢谢
UPD 类将是其他类的基类,尽管它不包含抽象方法。在我的例子中,它是一个“AbstractTestBase”,其中包含一些通用数据和实用方法,可以被一些集成/单元测试组使用
# 1 楼答案
由于您希望将该类用作子类,建议“带有私有构造函数的最终类”显然不起作用,因此您必须采用“抽象”的方式。从“抽象类”的定义来看,这是legetimate,因为该定义准确地说明了您想要什么: