如果没有 final
关键字,我如何实现这一点?我必须对构造函数进行哪些更改?
public final class testName {
testName() {
//do something
}
}
最佳答案
如果您将所有构造函数设为私有(private)
,那么该类也将不再是可扩展的。
public class TestName {
private TestName(){do something}
}
要了解原因,请查看第 3.4.4.1 节,'The default constructor' .通过声明您的私有(private)默认构造函数,该段的最后一句话成立:
Such a [private] constructor can never be invoked from outside of the class, but it prevents the automatic insertion of the default constructor.
通过在父类(super class)中声明一个不可访问的构造函数非常有效,没有您的子类可以调用的(其他)构造函数,因此 Java 阻止了编译。
关于java - 如何在不使用 final 关键字的情况下使类不可扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6898277/