Heim >Java >javaLernprogramm >Erben statische Methoden tatsächlich in Java?

Erben statische Methoden tatsächlich in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-12-12 11:30:13989Durchsuche

Do Static Methods Actually Inherit in Java?

Statische Methoden in der Java-Vererbung

Trotz der allgemeinen Auffassung, dass statische Methoden in Java nicht vererbt werden, gibt es eine rätselhafte Ausnahme. Die Verwirrung rührt von einem Missverständnis über die Natur der Vererbung in der Java-Sprache her.

Laut offizieller Java-Dokumentation werden alle zugänglichen Methoden von Unterklassen geerbt. Dazu gehören öffentliche, geschützte und paketprivate Methoden. Geerbte Methoden können unverändert verwendet, überschrieben, ausgeblendet oder durch neue Methoden ergänzt werden.

Bei statischen Methoden unterscheidet sich das Vererbungsverhalten nur dadurch, dass statische Methoden, die in der Unterklasse überschrieben werden, die geerbten Methoden verbergen Methode anstatt sie zu überschreiben. Beim Aufruf aus der Unterklasse wird die versteckte Methode in der Unterklasse anstelle der geerbten Methode ausgeführt.

Daher ist die Möglichkeit, auf die statische Methode display() in Klasse B zuzugreifen und sie aufzurufen, auf die Tatsache zurückzuführen, dass die Die Methode wird zusammen mit anderen zugänglichen Mitgliedern der Oberklasse vererbt. Das scheinbar anomale Verhalten von B.display() funktioniert auch, weil es die versteckte statische Methode in Klasse B aufruft und nicht die geerbte.

Diese Unterscheidung zwischen Überschreiben und Ausblenden hat erhebliche Auswirkungen. Beim Überschreiben wird die Methode in der Unterklasse immer ausgeführt, unabhängig davon, ob sie von der Oberklasse oder der Unterklasse aufgerufen wird. Beim Ausblenden hängt die aufgerufene Methode jedoch vom Kontext ab. Wenn die statische Methode von der Oberklasse aufgerufen wird, wird die geerbte Methode ausgeführt; Andernfalls wird die versteckte Methode in der Unterklasse ausgeführt.

Das obige ist der detaillierte Inhalt vonErben statische Methoden tatsächlich in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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