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 AnimalDie 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 animalObwohl 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 MethodeAusgabe:
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.
Aufgabe
Mittelvehicle.py: Enthält die übergeordneteVehicle-Klassecar.py: Enthält dieCar-Klasse, die vonVehicleerbtdriver.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 AnimalUnterklassen erben automatisch alle Methoden und Attribute der Elternklasse:
buddy = Dog("Buddy")
buddy.info() # Verwendet die geerbte Methode
# Ausgabe: I am Buddy, an animalFü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 MethodeProbier 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 ÄnderungDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Object Oriented Programming
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDer self-ParameterMethodenAttributeKonstruktor-Methode (__init__)Zusammenfassung – Einfacher Taschenrechner4Vererbung
Grundlagen der VererbungDie super()-FunktionMethoden überschreibenMehrfachvererbungMethod Resolution OrderZusammenfassung - Mitarbeiter-Hierarchie7Spezielle Methoden
Einführung in Magic MethodsOperator-ÜberladungMagic Methods für ContainerRückblick - Eigene Liste10Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster13Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung2Dekoratoren
Einführung in DekoratorenProperty-DekoratorStatischer Methoden-DekoratorKlassenmethoden-Dekorator5Polymorphismus
Methoden-Überschreiben vertieftDuck TypingAbstrakte Klassen und MethodenInterface-DesignZusammenfassung – Formen-Rechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungMixinsStatische und KlassenmethodenKlassendekoratorenContext Manager3Klasseneigenschaften
Instanz- vs. KlassenvariablenProperty-DekoratorenPrivate AttributeZusammenfassung – Bankkonto-Manager6Kapselung
Public, Protected, Private MemberZugriffsmodifikatorenInformation HidingProperty-Decorators für FortgeschritteneZusammenfassung - Studentenverwaltungssystem12Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen