Heim  >  Artikel  >  Java  >  Was ist das Prinzip des Polymorphismus in Java?

Was ist das Prinzip des Polymorphismus in Java?

王林
王林Original
2020-01-02 10:12:204729Durchsuche

Was ist das Prinzip des Polymorphismus in Java?

Was ist Polymorphismus?

Polymorphismus bezieht sich darauf, auf welches Klasseninstanzobjekt eine Referenzvariable zeigt, welche Methode in welcher Klasse implementiert ist. Dies muss während der Ausführung des Programms ermittelt werden. .

Da die spezifische Klasse beim Ausführen des Programms bestimmt wird, kann die Referenzvariable an verschiedene Klassenimplementierungen gebunden werden, ohne den Quellprogrammcode zu ändern, was dazu führt, dass sich die durch die Referenz aufgerufene spezifische Methode ändert Der spezifische Code, der während der Ausführung an das Programm gebunden ist, kann geändert werden, ohne den Programmcode zu ändern, sodass das Programm mehrere Ausführungszustände auswählen kann. Dies ist Polymorphismus.

(Kostenloses Teilen von Online-Lernvideo-Tutorials: Java-Online-Lernen )

Funktionen:

verweist auf die übergeordnete Klasse von Die untergeordnete Klasse Da die Referenz aufwärtstransformiert ist, kann sie nur auf Methoden und Eigenschaften zugreifen, die der übergeordneten Klasse gehören. Bei Methoden, die in der Unterklasse, aber nicht in der übergeordneten Klasse vorhanden sind, kann die Referenz nicht verwendet werden, selbst wenn die Methode überladen ist.

Wenn die Unterklasse einige Methoden in der übergeordneten Klasse überschreibt, müssen beim Aufrufen dieser Methoden die in der Unterklasse definierten Methoden verwendet werden (dynamische Verbindung, dynamischer Aufruf).

Es gibt drei notwendige Bedingungen für Java, um Polymorphismus zu erreichen: Vererbung, Umschreiben und Aufwärtstransformation.

Die aufgerufene Prioritätsmethode ist: this.show(O), super.show(O), this.show((super)O), super.show((super )O ).

Das Implementierungsprinzip des Polymorphismus

Der Aufruf von Objektmethoden in Java wird implementiert, indem man sich auf die Methodentabelle in den Klasseninformationen verlässt.

Wenn eine Methode eines Objekts aufgerufen wird, sucht die JVM im Allgemeinen in der Methodentabelle der Objektklasse nach der direkten Referenzadresse der Methode und ruft die Methode erst dann tatsächlich auf, nachdem sie die Adresse erhalten hat .

Die Superklasse erbt die Methode der übergeordneten Klasse. Wenn die Methode nicht überschreibend ist, zeigt die Methode beim Aufruf auf die Methode der übergeordneten Klasse. Wenn Sie diese Methode überschreiben, zeigt sie auf den Codebereich der Klasse, aber die Superklasse verfügt über die Methodentabelle der übergeordneten Klasse.

Wir wissen, dass beim Ausführen eines Java-Programms klassenbezogene Informationen im Methodenbereich abgelegt werden. Zu diesen Informationen gehört ein Bereich, der als Methodentabelle bezeichnet wird. Diese Tabelle enthält Informationen über alle durch den Typ definierten Methoden zeigt auf diese Zeiger auf den eigentlichen Code der Methode.

Wie in der Abbildung gezeigt:

Was ist das Prinzip des Polymorphismus in Java?

Wenn die vier Klassen Bird, Cock, Parrot und CrazyParrot in den Methodenbereich von geladen werden Der Methodenbereich der Java Virtual Machine enthält Informationen zu diesen vier Klassen. Die folgende Abbildung zeigt ein Beispiel der Methodentabelle jeder Klasse.

Was ist das Prinzip des Polymorphismus in Java?

Aus der Abbildung können wir ersehen, dass die Klasseninformationsmethodentabellen von Cock, Parrot und CrazyParrot von Bird geerbte Methoden enthalten. Die Methodentabelle von CrazyParrot enthält von Parrot geerbte Methoden. Darüber hinaus verfügt jede Klasse auch über eigene Methoden.

Achten Sie auf den spezifischen Methodencodebereich, auf den der Methodentabelleneintrag verweist. Für die polymorphe überschreibende Methode courtship() gehört die Position des Eintrags courtship() in den Methodentabellen von Cock, Parrot und CrazyParrot zwar zu dem von der Bird-Methodentabelle geerbten Teil, verweist aber auf einen anderen Methodencodebereich.

Weitergabe verwandter Artikel-Tutorials: Einführung in die Java-Sprache

Das obige ist der detaillierte Inhalt vonWas ist das Prinzip des Polymorphismus 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