Heim > Java > javaLernprogramm > Können Klassenvariablen in Java überschrieben werden?

Können Klassenvariablen in Java überschrieben werden?

Patricia Arquette
Freigeben: 2024-12-02 12:24:12
Original
786 Leute haben es durchsucht

Can Class Variables Be Overridden in Java?

Überschreiben von Klassenvariablen in Java: Eine falsche Bezeichnung

In Java können Klassenvariablen nicht überschrieben werden. Stattdessen handelt es sich bei dem, was wie eine überschriebene Variable aussieht, in Wirklichkeit um eine verborgene Variable. Um dieses Konzept zu verdeutlichen, untersuchen wir ein Beispiel:

class Dad {
    protected static String me = "dad";

    public void printMe() {
        System.out.println(me);
    }
}

class Son extends Dad {
    protected static String me = "son";
}

public void doIt() {
    new Son().printMe(); // Prints "dad"
}
Nach dem Login kopieren

Hier gibt die Funktion doIt „dad“ aus, weil die Klassenvariable me in Son lediglich das von Dad geerbte „me“ verbirgt.

Die Der Hauptunterschied zwischen Überschreiben und Ausblenden besteht darin, dass beim Überschreiben die Implementierung der übergeordneten Methode durch die Implementierung der untergeordneten Methode ersetzt wird, während das Ausblenden einfach dafür sorgt, dass das übergeordnete Element für das untergeordnete Element nicht mehr zugänglich ist Klasse.

Daher gibt es keine geeignete Möglichkeit, eine Klassenvariable zu überschreiben. Um stattdessen „son“ im gegebenen Beispiel auszugeben, ist es notwendig, den Konstruktor zu ändern oder den Namensparameter an die Methode zu übergeben, wie in:

public class Son extends Dad {
    private String me;

    public Son(String me) {
        this.me = me;
    }

    @Override
    public void printMe() {
        System.out.println(me);
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKönnen Klassenvariablen in Java überschrieben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage