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
de:modul:m320_2024:learningunits:lu10:vererbung [2026/08/30 14:05] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1de:modul:m320_2024:learningunits:lu10:vererbung [2026/08/30 14:12] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden 74.7.243.195
Zeile 1: Zeile 1:
 +====== LU10c - Vererbung in UML und Python ======
  
 +| {{de:modul:m320_2024:learningunits:lu10:transport.png?400|}}| <code python>
 +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
 +</code> |
 +
 +//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 |
 +
 +<WRAP center round tip 60%>
 +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.
 +</WRAP>
 +
 +----
 +{{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