Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Python-Kurs (Teil 14): Vererbung – Code wiederverwenden mit Klassen
#1
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.

   

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
Mit freundlichen Grüßen
Dirk Löbe aka Computerdirk
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Python-Kurs (Teil 18): Projekt – Passwort-Manager (3/3) - Daten abrufen computerdirk 0 22 21.08.2025, 16:36
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 17): Projekt – Passwort-Manager (2/3) – Speichern von Daten computerdirk 0 21 21.08.2025, 13:48
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 16): Projekt – Passwort-Manager (1/3) computerdirk 0 23 21.08.2025, 13:39
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 15): Polymorphie – gleiche Methode, verschiedene Objekte computerdirk 1 27 21.08.2025, 12:09
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 13): Objektorientierte Programmierung (OOP) computerdirk 0 21 21.08.2025, 10:37
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 12): Fehler abfangen – so stürzt dein Programm nicht ab computerdirk 0 21 21.08.2025, 09:55
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 11): Dateien lesen & schreiben computerdirk 0 22 21.08.2025, 09:40
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 10): Module & Bibliotheken – Code von anderen nutzen computerdirk 2 31 21.08.2025, 09:14
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 9): Funktionen – wiederverwendbarer Code computerdirk 0 23 21.08.2025, 08:42
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 8): Schleifen – Wiederholungen mit for & while computerdirk 0 23 21.08.2025, 08:27
Letzter Beitrag: computerdirk

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste