Methodenüberlagerung:
Es ist nicht nur eine Frage der Benennung, sondern eine grundlegende Funktion in Java.
Es basiert auf dem Konzept des dynamischen Methodenversands.
Dynamischer Methodenversand:
Es ist der Mechanismus, durch den der Aufruf einer überschreibenden Methode zur Laufzeit und nicht zur Kompilierungszeit aufgelöst wird.
Ermöglicht die Implementierung von Polymorphismus in Java.
Wie es funktioniert:
Eine Oberklassen-Referenzvariable kann auf ein Unterklassenobjekt verweisen.
Wenn eine überschriebene Methode über eine Superklassenreferenz aufgerufen wird, wird die Version der auszuführenden Methode basierend auf dem Typ des Objekts zum Zeitpunkt des Aufrufs bestimmt.
Daher erfolgt die Auswahl der auszuführenden Methode zur Laufzeit.
Wichtigkeit:
Der Typ des referenzierten Objekts (nicht der Typ der Referenzvariable) bestimmt, welche Version der überschriebenen Methode ausgeführt wird.
Dadurch können verschiedene Arten von Objekten, auf die durch eine Referenzvariable der Oberklasse verwiesen wird, verschiedene Versionen der überschriebenen Methode aufrufen.
Programmstruktur:
Superklasse: Sup, mit der who()-Methode.
Unterklassen: Sub1 und Sub2, beide überschreiben die who()-Methode.
Ausführung in main():
Erstellung der Objekte superOb (Typ Sup), subOb1 (Typ Sub1) und subOb2 (Typ Sub2).
Eine Referenzvariable supRef vom Typ Sup wird verwendet, um auf die verschiedenen Objekte zu verweisen.
Verhalten:
Programmausgabe:
Je nach Typ des referenzierten Objekts (superOb, subOb1 oder subOb2) wird die entsprechende Version der who()-Methode aufgerufen und angezeigt.
Dies demonstriert das Konzept des dynamischen Versands, bei dem die ausgeführte Methode zur Laufzeit entschieden wird, was die Implementierung von Polymorphismus ermöglicht.
Das obige ist der detaillierte Inhalt vonÜberlappende Methoden unterstützen Polymorphismus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!