构造函数可以在 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)
广告