Zum Inhalt springen

Python-Vererbung

Python-Vererbung verstehen

Vererbung ist eine leistungsstarke Funktion in der objektorientierten Programmierung, die die Erstellung neuer Klassen auf Basis bestehender Klassen ermöglicht. In Python wird Vererbung mithilfe des Schlüsselworts class implementiert, das es ermöglicht, eine neue Klasse als Kind- oder Unterklasse einer bestehenden Klasse zu erstellen.

Grundlagen der Vererbung

Vererbung ermöglicht es uns, eine neue Klasse zu erstellen, indem wir Eigenschaften von einer bestehenden Klasse, der Eltern- oder Basisklasse, erben. Die Kind- oder abgeleitete Klasse erbt alle Attribute und Methoden der Elternklasse und kann zudem eigene Attribute und Methoden hinzufügen.

Angenommen, wir haben eine Vehicle-Klasse mit Eigenschaften wie make, model und year sowie Methoden wie start und stop. Wir können eine Car-Klasse erstellen, die von der Vehicle-Klasse erbt und eigene Eigenschaften wie num_doors und num_seats hinzufügt. Die Car-Klasse kann außerdem Methoden wie start und stop überschreiben, falls erforderlich.

Syntax für Vererbung in Python

Die Syntax für Vererbung in Python ist unkompliziert. Um eine Unterklasse zu erstellen, müssen wir den Namen der Elternklasse in Klammern nach dem Namen der neuen Klasse angeben. Hier ist ein Beispiel:

Vererbung in Python-Klassen

python
class Vehicle:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        
    def start(self):
        print(f"{self.make} {self.model} started.")
        
    def stop(self):
        print(f"{self.make} {self.model} stopped.")

class Car(Vehicle):
    def __init__(self, make, model, year, num_doors, num_seats):
        super().__init__(make, model, year)
        self.num_doors = num_doors
        self.num_seats = num_seats

In diesem Beispiel erbt die Car-Klasse von der Vehicle-Klasse unter Verwendung der Klammernschreibweise, und ihre __init__-Methode ruft die __init__-Methode der Elternklasse mithilfe der super()-Funktion auf.

Methoden überschreiben

Bei der Vererbung in Python kann eine Kindklasse Methoden der Elternklasse überschreiben, wenn dies erforderlich ist. Dies geschieht, indem eine Methode mit demselben Namen in der Kindklasse definiert wird.

Methoden der Elternklasse in Python überschreiben

python
class Vehicle:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        
    def start(self):
        print(f"{self.make} {self.model} started.")
        
    def stop(self):
        print(f"{self.make} {self.model} stopped.")

class Car(Vehicle):
    def start(self):
        print(f"{self.make} {self.model} revved the engine and started.")

In diesem Beispiel überschreibt die Car-Klasse die start-Methode der Vehicle-Klasse, um eine Nachricht hinzuzufügen, dass der Motor hochgefahren wird, bevor er gestartet wird.

Mehrfachvererbung

Python erlaubt auch die Mehrfachvererbung, bei der eine Unterklasse von mehreren Elternklassen erben kann. Dazu listen wir die Elternklassen in Klammern, getrennt durch Kommas, auf.

Mehrfachvererbung in Python

python
class Animal:
    def __init__(self, name):
        self.name = name
        
    def speak(self):
        raise NotImplementedError("Subclass must implement abstract method")

class Mammal(Animal):
    def nurse(self):
        pass
    
class Reptile(Animal):
    def lay_eggs(self):
        pass
    
class Platypus(Mammal, Reptile):
    def __init__(self, name):
        super().__init__(name)

In diesem Beispiel erbt die Platypus-Klasse sowohl von der Mammal- als auch von der Reptile-Klasse, die beide von der Animal-Klasse erben. Die Platypus-Klasse muss die speak-Methode nicht implementieren, da sie von der Animal-Klasse über ihre Elternklassen geerbt wird.

Vorteile der Vererbung

Vererbung bietet Programmierern mehrere Vorteile:

  1. Code-Wiederverwendbarkeit: Durch das Erben von bestehenden Klassen können wir Code wiederverwenden, ohne ihn neu schreiben zu müssen. Dies spart Zeit und reduziert die Menge an Code, den wir schreiben müssen.
  2. Erweiterbarkeit: Vererbung ermöglicht es uns, neue Funktionalität zu bestehenden Klassen hinzuzufügen, ohne deren Code direkt zu ändern. Dies hilft, den Code organisiert und wartbarer zu halten.
  3. Polymorphie: Vererbung ermöglicht es uns, Objekte zu erstellen, die als Instanzen ihrer Eltern- oder Kindklassen behandelt werden können, was zu flexiblerem und modularerem Code führt.

Fazit

Vererbung ist ein grundlegendes Konzept in der objektorientierten Programmierung, das die Erstellung neuer Klassen auf Basis bestehender Klassen ermöglicht. Python bietet eine einfache und leistungsstarke Syntax zur Implementierung der Vererbung, die Code-Wiederverwendbarkeit, Erweiterbarkeit und Polymorphie ermöglicht.

Durch das Verständnis der Grundlagen der Vererbung und ihrer Vorteile können Programmierer effizienteren und modulareren Code erstellen, der in der Zukunft leicht gewartet und erweitert werden kann.

Praxis

Welche der folgenden Aussagen zur Python-Vererbung sind gemäß den auf der angegebenen URL bereitgestellten Informationen korrekt?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.