Exkurs - Implementierung in Python
Deklaration einer Klasse
Am Beispiel der Klassen Stapel
und Kartenstapel
sollen die Besonderheiten aufgezeigt werden, die man bei der Implementierung von Vererbung in Python beachten muss.
Ausgangspunkt ist das folgende Klassendiagramm, das die Vererbungsbeziehung der beiden Klassen beschreibt.

Hier eine Implementierung dieser Klassen in Python, bei der wir der Übersichtlichkeit halber die Kommentierung weggelassen haben:
Die Vererbungsbeziehung wird durch die Deklaration class Kartenstapel(Stapel)
festgelegt. Hier wird die Basisklasse in Klammern angegeben. Wenn keine Vererbungsbeziehung festgelegt werden soll, dann wird - wie im Beispiel class Stapel(object)
- als Basisklasse object
angegeben.
Übernommene Attribute und Methoden werden in der Deklaration der Subklasse nicht aufgeführt. Ergänzende Attribute und Methoden werden wie üblich deklariert. Beim Überschreiben von Methoden kann man verschiedene Wege gehen.
Eine Möglichkeit besteht darin, die Definition der Methode neu zu erstellen:
Hier wird die Methode __init__
abweichend von der Implementierung in der Basisklasse neu implementiert.
Beim Überschreiben ist es erlaubt, die entsprechende Methode der Basisklasse zu nutzen:
Hier wird mit der Anweisung Stapel.__init__(...)
der Konstruktor der Basisklasse Stapel
aktiviert.