构造函数可以在 Java 中设为 final 吗?


不可以,构造函数无法设为 final。

任何子类都无法覆盖 final 方法。如前所述,final 修饰符可以防止在子类中修改方法。

将方法设为 final 的主要目的是为了防止外部人员更改方法的内容。

但在继承中,子类会继承超类的成员,但构造函数除外。

换句话说,Java 中无法继承构造函数,因此无需在构造函数前编写 final。因此,Java 不允许在构造函数前使用 final 关键字。如果你尝试这么做,则会生成编译时错误,如下例所示。

示例

public class Sample {
   public static void main(String args[]){
      int num;
      final public Sample(){
         num = 30;
      }
   }
}

输出

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
   Syntax error, insert "enum Identifier" to complete EnumHeaderName
   Syntax error, insert "EnumBody" to complete BlockStatement
   Syntax error, insert ";" to complete Statement
   at newJavaExamples.Sample.main(Sample.java:6)

更新于: 2019 年 7 月 30 日

6 千多次浏览

启动您的 职业

完成课程认证

开始学习
广告