Benutzer-Werkzeuge

Webseiten-Werkzeuge


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki