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?