Methodenüberschreibung:
Es ist nicht nur eine Frage der Benennung, sondern eine grundlegende Funktion in Java.
Es basiert auf dem Konzept des dynamischen Methodenversands.
Dynamischer Methodenversand:
Ist der Mechanismus, durch den der Aufruf einer überlappenden Methode zur Laufzeit und nicht zur Kompilierungszeit aufgelöst wird.
Ermöglicht die Implementierung von Polymorphismus in Java.
Wie es funktioniert:
Eine Referenzvariable einer Oberklasse 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.
Bedeutung:
Der Typ des referenzierten Objekts (nicht der Typ der Referenzvariablen) 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 supRef-Referenzvariable 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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3