Um unsere Programme noch effizienter und überschaubarer zu machen, können wir auch Vererbung und Polymorphismus einsetzen. Vererbung ermöglicht es, dass eine Klasse die Eigenschaften und Methoden einer anderen Klasse übernimmt. Polymorphismus ermöglicht es, dass Methoden mit dem gleichen Namen unterschiedliche Funktionen ausführen können, abhängig von den Objekten, auf die sie angewendet werden. Dies kann mit dem super()-Funktion in Python erreicht werden. Ein Beispiel für Vererbung könnte wie folgt aussehen:
class Fahrzeug:
def __init__(self, marke, modell):
self.marke = marke
self.modell = modell
def beschreibung(self):
print(f"Das Fahrzeug ist ein {self.marke} {self.modell}.")
class Auto(Fahrzeug):
def __init__(self, marke, modell, jahr):
super().__init__(marke, modell)
self.jahr = jahr
def beschreibung(self):
super().beschreibung()
print(f"Es ist ein {self.jahr}er.")
Hier erbt die Auto-Klasse von der Fahrzeug-Klasse und fügt zusätzliche Eigenschaften und Methoden hinzu.