Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m320_2024:learningunits:lu10:vererbung [2024/09/23 14:19] – msuter | modul:m320_2024:learningunits:lu10:vererbung [2024/10/22 08:35] (aktuell) – msuter | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== LU10c - Vererbung in UML und Python ====== | ====== LU10c - Vererbung in UML und Python ====== | ||
- | {{:modul:m320: | + | |
+ | | {{:modul:m320_2024: | ||
+ | class Transport: | ||
+ | def __init__(self): | ||
+ | self._power = 0.0 | ||
+ | self.distance = 0.0 | ||
+ | def accelerate(self): | ||
+ | pass | ||
+ | def slowdown(self): | ||
+ | pass | ||
+ | |||
+ | |||
+ | class Aeroplane(Transport): | ||
+ | def __init__(self): | ||
+ | # call constructor of the parent class | ||
+ | super().__init__() | ||
+ | self._climb_performance = 0.0 | ||
+ | def take_off(self): | ||
+ | pass | ||
+ | def landing(self): | ||
+ | pass | ||
+ | </ | ||
//Abb: Vererbung in UML-Darstellung// | //Abb: Vererbung in UML-Darstellung// | ||
- | ==== protected | + | ===== Sichtbarkeit der Attribute ===== |
+ | In früheren Learning Units haben Sie die Sichtbarkeit **+** '' | ||
+ | Bei der Vererbung kommt nun noch die Sichtbarkeit '' | ||
Attribute in der Oberklasse, welche auch in der Unterklasse direkt zugeifbar sein müssen, werden als **protected** (geschützt) deklariert. | Attribute in der Oberklasse, welche auch in der Unterklasse direkt zugeifbar sein müssen, werden als **protected** (geschützt) deklariert. | ||
In UML wird dies mit dem Zeichen **#** signalisiert. | In UML wird dies mit dem Zeichen **#** signalisiert. | ||
+ | |||
+ | ^ Sichtbarkeit ^ Symbol ^ Wer darf zugreifen? ^ | ||
+ | | public | + | Jede andere Klasse/ | ||
+ | | protected | # | Nur innerhalb der Klasse und deren Kinder | | ||
+ | | private | - | Nur innerhalb der Klasse, keine Kinder | | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Im Gegensatz zu anderen Programmiersprachen erzwingt Python keine Sichtbarkeit von Attributen. | ||
+ | Die Angaben '' | ||
+ | </ | ||
---- | ---- | ||
{{tag> | {{tag> | ||
[[https:// | [[https:// |