>  기사  >  Java  >  Java에서 생성자가 최종일 수 없는 이유는 무엇입니까?

Java에서 생성자가 최종일 수 없는 이유는 무엇입니까?

PHPz
PHPz앞으로
2023-08-20 19:01:221452검색

Java에서 생성자가 최종일 수 없는 이유는 무엇입니까?

메소드를 final로 선언할 때마다 이를 재정의할 수 없습니다. 즉, 슈퍼클래스의 최종 메서드 구현을 하위 클래스에 제공할 수 없습니다.

즉, 메소드를 final로 선언하는 목적은 메소드가 외부(서브클래스)에서 수정되는 것을 방지하는 것입니다.

상속에서 클래스를 확장하면 하위 클래스가 생성자를 제외한 상위 클래스의 모든 멤버를 상속합니다.

즉, Java에서는 생성자를 상속할 수 없으므로 생성자를 재정의할 수 없습니다.

따라서 생성자 앞에 final을 추가하는 것은 의미가 없습니다. 따라서 Java에서는 생성자 앞에 final 키워드를 사용하는 것을 허용하지 않습니다.

생성자를 final로 선언하려고 하면 컴파일 타임 오류가 발생하고 "여기에서는 final 수정자가 허용되지 않습니다"라는 메시지가 표시됩니다.

다음 Java 프로그램에서 Student 클래스에는 final로 선언된 생성자가 있습니다.

Demo

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();
   }
}

컴파일 시간 오류

위 프로그램을 컴파일하는 동안 다음 오류가 발생합니다.

rreee

위 내용은 Java에서 생성자가 최종일 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제