Auf Thema antworten

Ist eigentlich logisch, wenn du es dir überlegst. Du hast z.B. eine Liste mit irgendwelchen Menschen. Jeder Mensch hat eine [c]essen(honigsorte)[/c]-Methode, nur für der Papst gibt es die Version [c]essen(honigsorte, marmelade)[/c]. Wie soll der Aufruf für den Papst erfolgen? Woher soll die Marmelade kommen? Brauchen wir einen Marmeladenvorrat, auch wenn nur einer von 7 Milliarden Menschen eine Extra-Marmeladenwurst gebraten bekommt? Sicher, man kann einen speziellen Test auf "Papst" einbauen, aber es ist ja gerade ein Grundprinzip(*) der Vererbung, dass eine abgeleitete Klasse prinzipiell so wie die Elternklasse verwendet werden kann (auch wenn zusätzliche Attribute und Methoden - etwa [c]urbiEtOrbi()[/c] - erlaubt sind).


(*) Liskovsches Substitutionsprinzip: "Eigenschaften, die anhand der Spezifikation des vermeintlichen Typs eines Objektes bewiesen werden können, sollten auch dann gelten, wenn das Objekt einem Untertyp dieses Typs angehört".



Oben