Menu
Coddy logo textTech

Grundlagen der Vererbung

Teil des Abschnitts Object Oriented Programming der Python-Journey von Coddy — Lektion 17 von 64.

Vererbung ermöglicht es einer Klasse, Attribute und Methoden von einer anderen Klasse zu erben, wodurch eine Eltern-Kind-Beziehung entsteht.

Hier ist ein Beispiel für eine Basisklasse:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

Erstellen Sie eine Kindklasse, die von der Elternklasse erbt:

class Dog(Animal):
    pass  # Erbt alles von Animal

Die Syntax class Dog(Animal): bedeutet, dass Dog von Animal erbt. Setzen Sie den Namen der Elternklasse in Klammern.

Erstellen Sie Objekte aus beiden Klassen:

generic_animal = Animal("Creature")
buddy = Dog("Buddy")

Verwenden Sie die geerbten Methoden:

generic_animal.info()
buddy.info()

Ausgabe:

I am Creature, an animal
I am Buddy, an animal

Obwohl Dog __init__ oder info nicht definiert, erhält es diese automatisch von Animal.

Sie können der Kindklasse neue Methoden hinzufügen:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # Vererbte Methode
buddy.bark()  # Neue Methode

Ausgabe:

I am Buddy, an animal
Buddy says Woof!

Wichtiger Punkt: Unterklassen erben alle Attribute und Methoden von ihrer Elternklasse. Verwenden Sie die Syntax class Child(Parent):, um Vererbung zu erstellen. Dies hilft Ihnen, Code wiederzuverwenden und logische Klassenhierarchien zu erstellen.

challenge icon

Aufgabe

Mittel
  • vehicle.py: Enthält die übergeordnete Vehicle-Klasse
  • car.py: Enthält die Car-Klasse, die von Vehicle erbt
  • driver.py: Hauptdatei zum Testen Ihrer Implementierung

Jede Datei enthält detaillierte TODO-Kommentare, die Sie durch die Implementierung führen. Sie müssen:

  • Die Vehicle-Klasse mit den Attributen make und model vervollständigen
  • Die korrekte Klassenvererbung in der Car-Klasse implementieren
  • Die richtigen Import-Anweisungen zwischen den Dateien einrichten
  • Objekte in der Driver-Datei erstellen und testen

Folgen Sie den TODO-Kommentaren sorgfältig, da sie eine Schritt-für-Schritt-Anleitung zur Lösung bieten.

Spickzettel

Vererbung ermöglicht es einer Klasse, Attribute und Methoden von einer anderen Klasse unter Verwendung der Syntax class Child(Parent): zu erben:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

class Dog(Animal):
    pass  # Erbt alles von Animal

Unterklassen erben automatisch alle Methoden und Attribute der Elternklasse:

buddy = Dog("Buddy")
buddy.info()  # Verwendet die geerbte Methode
# Ausgabe: I am Buddy, an animal

Fügen Sie Unterklassen neue Methoden hinzu, während die geerbte Funktionalität beibehalten wird:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # Geerbte Methode
buddy.bark()  # Neue Methode

Probier es selbst

# TODO: Importiere die Klasse Vehicle aus vehicle.py
# TODO: Importiere die Klasse Car aus car.py

# TODO: Erstelle ein Vehicle-Objekt mit der Marke "Toyota" und dem Modell "Corolla"
vehicle = None

# TODO: Erstelle ein Car-Objekt mit der Marke "Honda" und dem Modell "Civic"
car = None

# TODO: Rufe die Methode display_info() für das vehicle-Objekt auf
# Erwartete Ausgabe: "Vehicle: Toyota Corolla"

# TODO: Rufe die Methode display_info() für das car-Objekt auf
# Erwartete Ausgabe: "Vehicle: Honda Civic"
# Hinweis: Car erbt display_info von Vehicle ohne Änderung
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Object Oriented Programming