没有final
关键字如何实现?我必须对构造函数进行哪些更改?
public final class testName {
testName() {
//do something
}
}
最佳答案
如果将所有构造函数设为private
,则该类也将不再可扩展。
public class TestName {
private TestName(){do something}
}
要查看原因,请查看第3.4.4.1节'The default constructor'。通过声明您的私有(private)默认构造函数,该段的最后一句为:
通过在父类(super class)中声明一个不可访问的构造函数,可以有效地实现子类无法调用的(其他)构造函数,因此Java会阻止编译。