====== LU10c - Vererbung in UML und Python ======
| {{:modul:m320_2024:learningunits:lu10:transport.png?400|}}|
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//
===== Sichtbarkeit der Attribute =====
In früheren Learning Units haben Sie die Sichtbarkeit **+** ''public'' und **-** ''private'' kennen gelernt.
Bei der Vererbung kommt nun noch die Sichtbarkeit ''protected'' hinzu.
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.
^ Sichtbarkeit ^ Symbol ^ Wer darf zugreifen? ^
| public | + | Jede andere Klasse/Funktion |
| protected | # | Nur innerhalb der Klasse und deren Kinder |
| private | - | Nur innerhalb der Klasse, keine Kinder |
Im Gegensatz zu anderen Programmiersprachen erzwingt Python keine Sichtbarkeit von Attributen.
Die Angaben ''protected'' und ''private'' sind mehr als Hinweise für andere Programmierer zu verstehen.
----
{{tag>M320-LU10}}
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] René Probst, bearbeitet durch Marcel Suter