如何在不使用Java中的final关键字的情况下避免使用子类

时间:2015-07-22 12:26:28

标签: java

final class AbsTest {}

class BTest extends AbsTest {}

如何在不使用final关键字的情况下阻止创建子类?

2 个答案:

答案 0 :(得分:4)

以下是几个选项

  • 创建私有构造函数
  • 使每个方法都是最终的,因此人们无法覆盖它们。您可以避免以这种方式从子类中意外调用方法。但这并不会阻止子类化。
  • 将check检查到类的构造函数:

    if(this.getClass()!= abc.class)   {         抛出新的RuntimeException(“不允许子类”);   }

但提供 final 是为了解决这个问题,我必须说这样做更好 final !!!

答案 1 :(得分:1)

  

在上面的代码中如何防止在不使用“final”的情况下创建子类   关键字

您可以声明私有构造函数以避免创建Object。

private AbsTest() {

}