메소드를 final로 만들 때마다 재정의할 수 없습니다. 그것. 즉, 하위 클래스에서 상위 클래스의 최종 메서드에 대한 구현을 제공할 수 없습니다.
즉, 메소드를 final로 만드는 목적은 외부(자식 클래스)에서 메소드 수정을 방지하는 것입니다.
상속에서 클래스를 확장할 때마다. 자식 클래스는 생성자를 제외한 슈퍼클래스의 모든 멤버를 상속합니다.
즉, Java에서는 생성자를 상속할 수 없으므로 재정의할 수 없습니다. 생성자.
따라서 생성자 전에 final을 작성하는 것은 의미가 없습니다. 따라서 자바는 생성자 앞에 final 키워드를 허용하지 않습니다.
시도하면 "modifier final not allowed here"라는 컴파일 시간 오류가 생성됩니다.
예
다음 자바 프로그램에서 Student 클래스는 final인 생성자를 가지고 있습니다.
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 here
public final Student(){
^
1 error