modul:archiv:m320:learningunits:lu06:theorie:lu07-kapitel_4

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:archiv:m320:learningunits:lu06:theorie:lu07-kapitel_4 [2026/08/30 14:06] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1modul:archiv:m320:learningunits:lu06:theorie:lu07-kapitel_4 [2026/08/30 14:09] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden 74.7.243.195
Zeile 1: Zeile 1:
 +===== 4. Anpassen und Erweitern =====
 +<nodisp>TODO SuMa, PrRe: @override aus Python >= 3.12 prüfen</nodisp>
 +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.
 +=== Erweitern ===
 +Das Wort "erweitern" sagt bereits klar aus, was hier Sache ist. Eine Unterklasse erhält in diesem Fall zusätzliche Attribute und Methoden.\\
 +----
 +//Beispiel 6.3://\\
 +''SalaryAccount'' erweitert ''BancAccount'' um die Funktion für den Kontoüberzug. Hier mit dem Attribut ''overdraw'' und der Methode ''get_overdraw()'' dargestellt.\\
 +{{modul:archiv:m320:learningunits:lu06:theorie:lu07-abb1.6-erweitern.png?600|}}\\
 +//Abb 6.6:// Elemente einer erweiterten Klasse\\
 +Ein Objekt der Klasse ''SalaryAccount'' ist somit immer auch ein Objekt der Klasse ''BancAccount''
 +----
 +<WRAP important>Bei der Vererbung weist die abgeleitet Klasse (Unterklasse) immer auch den Typ - die Klasse - der Oberklassen auf.</WRAP>
 +
 +=== Anpassen ===
 +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.\\
 +----
 +//Beispiel 6.4://\\
 +''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.\\
 +{{modul:archiv:m320:learningunits:lu06:theorie:lu07-abb1.7-ueberschreiben.png?600|}}\\
 +//Abb 6.7: //Visualisierung des Überschreibens in einer abgeleiteten Klasse
 +
 +----
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) René Probst
 +
 +
 +