为什么构造函数不能在Java中是final?
每当将方法定型为最终方法时,都无法覆盖它。也就是说,您不能从子类提供对超类的final方法的实现。
即,使方法成为最终方法的目的是防止从外部(子类)修改方法。
在继承中,只要您扩展类。子类继承除构造函数之外的所有超类成员。
换句话说,构造函数不能在Java中继承,因此您不能覆盖构造函数。
因此,在构造函数之前编写final毫无意义。因此,java不允许在构造函数之前使用final关键字。
如果尝试这样做,则使构造函数为final会生成编译时错误,提示“此处不允许使用修饰符final”。
示例
在下面的Java程序中,Student类具有一个最终的构造函数。
public class Student {public final String name;
public final int age;
public final Student() {
this.name = "Raju";
this.age = 20;
}
public void display() {
System.out.println("Name of the Student: "+this.name );
System.out.println("Age of the Student: "+this.age );
}
public static void main(String args[]) {
new Student().display();
}
}
编译时错误
编译时,上面的程序生成以下错误。
Student.java:6: error: modifier final not allowed herepublic final Student(){
^
1 error
以上是 为什么构造函数不能在Java中是final? 的全部内容, 来源链接: utcz.com/z/358617.html