没有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会阻止编译。

10-02 11:00