Polymorphismus bezieht sich darauf, auf welches Klasseninstanzobjekt eine Referenzvariable zeigt, in welcher Klasse sie implementiert ist kann nur während der Ausführung des Programms ermittelt werden. (Empfohlenes Lernen: Java-Kurs )
Da die spezifische Klasse während der Programmausführung bestimmt wird, sodass der Quellprogrammcode geändert werden kann, werden verschiedene Klassen implementiert, was dazu führt Die durch die Referenz aufgerufene spezifische Methode kann sich entsprechend ändern, ohne den Programmcode zu ändern. Dies ist Polymorphismus.Funktionen:
Die Referenz der übergeordneten Klasse, die auf die Unterklasse verweist, wird nach oben transformiert. Sie kann nur auf die Methoden und Eigenschaften zugreifen, die der übergeordneten Klasse gehören, und zwar für die Unterklasse Wenn eine Methode existiert, aber nicht in der übergeordneten Klasse vorhanden ist, 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 die Methode überschreiben, zeigt sie auf den Codebereich der Klasse.Aber die Superklasse wird die Methodentabelle der übergeordneten Klasse haben.
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 und Informationen zu allen von der Methode definierten Methoden enthält Typ und Zeiger auf den tatsächlichen Code dieser Methoden.Das obige ist der detaillierte Inhalt vonWie implementiert Java Polymorphismus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!