LU10d - Anpassen und Erweitern

TODO SuMa, PrRe: @override aus Python >= 3.12 prüfen

Das Konzept der Vererbung weist zwei grundlegende Aspekte betreffend der Auswirkungen auf die Programmausgestaltung aus. Eine Unterklasse kann Code erweitern oder Code in angepasster Form ausführen.

Das Wort „erweitern“ sagt bereits klar aus, was hier Sache ist. Eine Unterklasse erhält in diesem Fall zusätzliche Attribute und Methoden.

SalaryAccount erweitert BankAccount um die Funktion für den Kontoüberzug. Hier mit dem Attribut overdraft und der Property overdraft dargestellt. Auf der rechten Seite sehen Sie die resultierende Klasse, bestehend aus den geerbten Elementen und den Erweiterungen in SalaryAccount.

Abb: Elemente einer erweiterten Klasse

Ein Objekt der Klasse SalaryAccount ist somit immer auch ein Objekt der Klasse BankAccount.

Bei der Vererbung weist die abgeleitet Klasse (Unterklasse) immer auch den Typ - die Klasse - der Oberklassen auf.

Wird in einer Unterklasse eine „Anpassung“ vorgenommen, so heisst dies, dass eine gegebene Funktionalität (eine Methode) anders ausgeführt wird. In der Fachsprache nennt man dies auch „überschreiben“ (overwriting) einer Methode.


SalaryAccount überschreibt die Methode withdraw_money() aus BancAccount. So ist es nun möglich, durch den Aufruf der „gleichen“ Methode - zumindest was den Namen der Methode betrifft - einen anderen Ablauf auszuführen. Während BancAccount keine Bezüge zulässt, die zu einem negativen Saldo führen, kann SalaryAccount dies tun.

Abb: Visualisierung des Überschreibens in einer abgeleiteten Klasse


René Probst, bearbeitet durch Marcel Suter

  • modul/m320_2024/learningunits/lu10/unterklasse.txt
  • Zuletzt geändert: 2024/10/30 11:41
  • von msuter