Java Final Modifier

Der Java-Endmodifikator kann an alle Klassen, Methoden und Variablen angehängt werden. Jeder hat eine andere Bedeutung.

Beim Anhängen an eine Klasse [Vererbung verbieten]

Wenn Sie einer Klasse den letzten Modifikator hinzufügen, kann diese Klasse nicht vererbt werden. Bei der Kompilierung tritt ein Fehler auf.

//letzte Modifikatorklasse
final class FinalDemo {
    String name = "Klasse mit Finale";
    public final void getInfo() {
        System.out.println(this.name);
    }
}

//Kleine Klasse
class FinalDemoChild extends FinalDemo {

}

class MyApp {
    public static void main(String[] args) {
        FinalDemoChild demo = new FinalDemoChild();
    }
}

Ausführungsergebnis

$ java Myapp
Error:(8, 21) java: final final_Kann nicht von der Demo geerbt werden

Beim Anhängen an eine Methode [Überschreiben verbieten]

Wenn Sie einer Methode einer Klasse final hinzufügen, können Sie sie in der untergeordneten Methode class nicht überschreiben.

//Klasse mit Finale
class FinalDemo {
    String name = "Klasse mit Finale";
    public final void getInfo() {
        System.out.println(this.name);
    }
}

//Kleine Klasse
class FinalDemoChild extends FinalDemo {
    @Override
    public void getInfo() {
        System.out.println(this.name + "Kleine Klasse");
    }
}

class MyApp {
    public static void main(String[] args) {
        FinalDemoChild demo = new FinalDemoChild();
    }
}

Ausführungsergebnis

$ java MyApp
Error:(11, 17) java:FinalDemoChild getInfo()Ist die endgültige Demo getInfo()Kann nicht überschrieben werden
Die überschriebene Methode ist endgültig

Beim Anhängen an eine Variable [Verbot der Neuzuweisung (Konstante)]

Wenn Sie einer Variablen (einem Feld) final hinzufügen, können Sie sie nicht neu zuweisen. Das heißt, es ist eine Konstante. Da es nicht erforderlich ist, es mit der Instanz zu ändern, wird es häufig mit einer Klassenvariablen mit static deklariert. Wie in anderen Sprachen werden auch alle Konstanten in Großbuchstaben geschrieben.

//Klasse mit Finale
class FinalDemo {
    public static final String NAME = "Variablen mit final";
}


class MyApp {
    public static void main(String[] args) {
        //Konstante ändern
        FinalDemo.NAME = "Neuzuweisung";
    }
}

Ausführungsergebnis

$ java MyApp 
Error:(9, 18) java:Sie können der endgültigen Variablen NAME keinen Wert zuweisen

Recommended Posts

Java Final Modifier
letzter Modifikator
Zugriffsmodifikator [Java]
JAVA Learning History Final Modifier und Static Modifier
Java abstrakter Modifikator [Hinweis]
Java-Tipps - Modifikatoren der StataticUtility-Klasse
Java Basic Learning Content 5 (Qualifikation)
Java
Java
Java lernen (0)
Java studieren ―― 3
[Java] -Array
[Java Silver] Zusammenfassung der Zugriffsmodifikatorpunkte
Java geschützt
[Java] Anmerkung
[Java] Modul
Java-Array
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Java-Methoden
Java-Methode
Java (Konstruktor)
Java-Array
Unterschied zwischen final und Immutable in Java
Java (überschreiben)
Java (Methode)
Java Day 2018
Java-Zeichenfolge
Java markiert PPT-Dokumente als Endzustand
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Java (gesetzt)
[Java] compareTo
Java studieren -5
Java reflektierend 获 获 举
Java (Schnittstelle)
Java-Memorandum
Java-Array
[Java] Array
Java # 0 studieren
Java-Überprüfung
Java-Framework
Java-Funktionen
[Java] Vererbung
FastScanner Java
Java-Funktionen
Java Anfänger 3
Java-Memo
Java-Vererbung
[Java] Überladung
Java-Grundlagen
[Java] Anmerkung
Java Anfänger
Java (add2)
JAVA (Karte)
Java9-Sammlung