Wann immer Sie eine Methode als endgültig deklarieren, können Sie sie nicht überschreiben. Das heißt, Sie können einer Unterklasse keine Implementierung der endgültigen Methode einer Oberklasse bereitstellen.
Mit anderen Worten: Der Zweck der Deklaration einer Methode als endgültig besteht darin, zu verhindern, dass die Methode von außen (Unterklassen) geändert wird.
Wenn Sie bei der Vererbung eine Klasse erweitern, erbt die Unterklasse alle Mitglieder der Oberklasse mit Ausnahme des Konstruktors.
Mit anderen Worten: Konstruktoren können in Java nicht vererbt werden, daher können Sie den Konstruktor nicht überschreiben.
Daher macht es keinen Sinn, final vor dem Konstruktor hinzuzufügen. Daher erlaubt Java nicht die Verwendung des Schlüsselworts final vor einem Konstruktor.
Wenn Sie versuchen, den Konstruktor als final zu deklarieren, wird beim Kompilieren ein Fehler mit der Meldung „Modifikator final hier nicht zulässig“ generiert.
Im folgenden Java-Programm verfügt die Student-Klasse über einen Konstruktor, der als endgültig deklariert ist.
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(); } }
Beim Kompilieren generiert das obige Programm den folgenden Fehler.
Student.java:6: error: modifier final not allowed here public final Student(){ ^ 1 error
Das obige ist der detaillierte Inhalt vonWarum können Konstruktoren in Java nicht endgültig sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!