polymorphismus:methodoverriding
Überschreiben von Methoden
Tier t; t = new Katze("Snoopy"); t.miaue(); //Geht nicht! t = new Hund("Harro"); t.belle(); //Geht nicht!
Wir wissen, dass wir in der obigen Situation die Methoden miaue
und belle
nur durch umständliches Casten aufrufen können. Aber wir könnten den Compiler doch austricksen:
Tier t; t = new Katze("Snoopy"); t.sagwas(); //Geht! t = new Hund("Harro"); t.sagwas(); //Geht!
Der Computer entscheidet erst zur Laufzeit, ob bei t.sagwas()
die Methode sagwas()
der Klasse Katze
aufgerufen wird oder die der Klasse Hund
. Man nennt dies dynamische Bindung. Man sagt: Die Methoden sagwas()
der Klassen Hund
und Katze
überschreiben die Methode sagwas() der Klasse Tier
.
polymorphismus/methodoverriding.txt · Zuletzt geändert: 2023/03/09 17:02 von Martin Pabst