메소드를 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