class Toy: def __init__(self, name): self.name = name def getName(self): return name class BeepingToy(Toy): def beep(self): print "%s beeps"%self.name class GrowlingToy(Toy): def growl(self): print "%s growls"%self.name
Die Funktion zum Umtaufen (sinnvollerweise setName) muss natürlich in die Toy-Klasse, denn sie spiegelt eine allgemeine Eigenschaft aller Spielzeuge wieder. Sollen Spielzeuge auch kaputt gehen können, braucht Toy eine weitere Instanzvariable (sagen wir broken) samt Akzessorfunktion. Beachtet, dass damit auch gleich BeepingToy und GrowlingToy die Fähigkeit zum Umgetauftwerden und Kaputtgehen bekommen.
Will man allerdings dafür sorgen, dass kaputte Spielzeuge auch nicht mehr beepen und growlen, müssen die entsprechenden Methoden in den abgeleiteten Klassen geändert werden. Könnt ihr euch ein Verfahren ausdenken, bei dem das nicht mehr nötig ist?