Dirks-Computerforum

Normale Version: Python-Kurs (Teil 14): Vererbung – Code wiederverwenden mit Klassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo und willkommen zurück!

In der letzten Lektion hast du gelernt, wie man Baupläne (Klassen) für Objekte erstellt. Aber was, wenn du einen Bauplan für eine Person hast und jetzt einen für einen Schüler erstellen möchtest? Ein Schüler ist auch eine Person und hat die gleichen Eigenschaften wie Name und Alter.

Hier kommt die Vererbung ins Spiel. Sie erlaubt es einer neuen Klasse, alle Eigenschaften und Methoden von einer bestehenden Klasse zu "erben". Das spart eine Menge Arbeit und macht deinen Code sehr viel sauberer.

1. Eine Klasse erben lassen

Um eine Klasse von einer anderen erben zu lassen, schreibst du den Namen der "Eltern-Klasse" einfach in Klammern hinter den Namen der neuen Klasse.

Beispiel:

Code:
class Person:
    def __init__(self, name, alter):
        self.name = name
        self.alter = alter

    def sage_hallo(self):
        print(f"Hallo, mein Name ist {self.name}.")

# Die Klasse Schüler erbt von der Klasse Person
class Schueler(Person):
    pass  # 'pass' ist ein Platzhalter


Der neue Schüler hat jetzt automatisch die Eigenschaften name und alter sowie die Methode sage_hallo(). Das musstest du nicht noch einmal schreiben!

2. Eigene Eigenschaften hinzufügen

Ein Schüler hat aber auch eigene Eigenschaften. Um diese hinzuzufügen, nutzt du eine spezielle Funktion namens super(), um die Eigenschaften der Eltern-Klasse aufzurufen, und fügst dann deine eigenen hinzu.

Beispiel:

Code:
class Schueler(Person):
    def __init__(self, name, alter, schulklasse):
        super().__init__(name, alter)
        self.schulklasse = schulklasse

    def sag_schulklasse(self):
        print(f"Ich bin in der Klasse {self.schulklasse}.")

  • super().__init__(name, alter) ruft den Konstruktor der Person-Klasse auf und übergibt die Werte.
  • self.schulklasse = schulklasse fügt die neue Eigenschaft hinzu.

3. Ein praktisches Beispiel

Jetzt kannst du Objekte beider Klassen erstellen und sie nutzen.

Code:
person1 = Person("Dirk", 53)
schueler1 = Schueler("Max", 16, "10b")

person1.sage_hallo()    # Ausgabe: Hallo, mein Name ist Dirk.
schueler1.sage_hallo()    # Ausgabe: Hallo, mein Name ist Max.
schueler1.sag_schulklasse() # Ausgabe: Ich bin in der Klasse 10b.

[attachment=20]

Wie du siehst, kann das Schueler-Objekt die geerbten und die eigenen Methoden nutzen.

In der nächsten Lektion werden wir uns mit dem nächsten wichtigen Prinzip der OOP beschäftigen: der Polymorphie.

<< Zurück zur Kurs-Übersicht: Was ist Python und warum du es lernen solltest