构件函数能在 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)

更新于: 30-7-2019

6K+ 浏览

启动您的 职业生涯

通过完成课程获得认证

开始入门
广告