English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Sobald eine Methode als finale Methode definiert ist, kann sie nichtÜberladung Das bedeutet, dass Sie die Implementierung der finalen Methode der Oberklasse nicht von der Unterklasse bereitstellen können.
Das bedeutet, dass das Ziel, eine Methode als finale Methode zu definieren, darin besteht, die Änderung der Methode von außen (Subklasse) zu verhindern.
Aber wenn Sie versuchen, eine finale Methode zu überschreiben, wird ein Kompilierungsfehler generiert.
interface Person{ void dsplay(); } class Employee implements Person{ public final void dsplay() { System.out.println("Dies ist die Anzeigemethode der Employee-Klasse"); } } class Lecturer extends Employee{ public void dsplay() { System.out.println("Dies ist die Anzeigemethode der Lecturer-Klasse"); } } public class FinalExample {}} public static void main(String args[]) { Lecturer obj = new Lecturer(); obj.dsplay(); } }
Ausgaberesultat
Employee.java:10: Fehler: dsplay() in Lecturer kann dsplay() in Employee nicht überschreiben public void dsplay() { ^ überschriebene Methode ist final 1 Fehler
Bei der Vererbung erweitern Sie die Klasse, solange Sie nicht den Konstruktor erweitern. Die Unterklasse erbt alle Superklasse-Mitglieder außer dem Konstruktor.
Mit anderen Worten, der Konstruktor kann in Java nicht vererbt werden, daher können Sie nichtÜberladungKonstruktor.
Daher hat es keinen Sinn, final vor dem Konstruktor zu schreiben. Daher erlaubt Java nicht, den Schlüsselwort final vor dem Konstruktor zu verwenden.
Wenn Sie versuchen, den Konstruktor final zu machen, wird ein Kompilierungsfehler generiert, der "hier ist der Modifikator final nicht erlaubt" anzeigt.
Im folgenden Java-Programm hat die Klasse Student einen finalen Konstruktor.
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("Studentname: ",+this.name ); System.out.println("Studentalter: ",+this.age ); } public static void main(String args[]) { new Student().display(); } }
Bei der Kompilierung generiert der obige Code folgenden Fehler.
Student.java:6: Fehler: Modifikator final hier nicht erlaubt public final Student() ^ 1 Fehler