Überschreiben und Erweitern der geerbten Funktionalität
Einer der Hauptvorteile der Vererbung in Python ist die Möglichkeit, die geerbte Funktionalität zu überschreiben und zu erweitern. Dies bedeutet, dass Sie das Verhalten der Elternklasse in der Unterklasse ändern oder erweitern können, sodass Sie die Funktionalität an Ihre spezifischen Anforderungen anpassen können.
Überschreiben geerbter Methoden
Um eine geerbte Methode zu überschreiben, definieren Sie einfach eine Methode in der Unterklasse mit demselben Namen wie die Methode in der Elternklasse. Wenn Sie die Methode für eine Instanz der Unterklasse aufrufen, wird die Implementierung der Unterklasse anstelle der Implementierung der Elternklasse verwendet.
## Base class
class Animal:
def speak(self):
print("The animal makes a sound.")
## Derived class
class Dog(Animal):
def speak(self):
print("The dog barks.")
## Create an instance of the derived class
my_dog = Dog()
my_dog.speak() ## Output: The dog barks.
In diesem Beispiel überschreibt die Dog
-Klasse die speak()
-Methode der Animal
-Klasse und bietet eine spezifischere Implementierung für einen Hund.
Erweitern der geerbten Funktionalität
Neben dem Überschreiben geerbter Methoden können Sie auch die Funktionalität der Elternklasse erweitern, indem Sie der Unterklasse neue Methoden oder Attribute hinzufügen.
## Base class
class Vehicle:
def __init__(self, make, model):
self.make = make
self.model = model
def start(self):
print("The vehicle is starting.")
## Derived class
class ElectricCar(Vehicle):
def __init__(self, make, model, battery_capacity):
super().__init__(make, model)
self.battery_capacity = battery_capacity
def start(self):
print("The electric car is starting.")
def charge(self):
print("The electric car is charging.")
## Create an instance of the derived class
my_electric_car = ElectricCar("Tesla", "Model S", 100)
my_electric_car.start() ## Output: The electric car is starting.
my_electric_car.charge() ## Output: The electric car is charging.
In diesem Beispiel erweitert die ElectricCar
-Klasse die Vehicle
-Klasse, indem sie ein battery_capacity
-Attribut und eine charge()
-Methode hinzufügt und gleichzeitig die start()
-Methode überschreibt.
Indem Sie verstehen, wie Sie die geerbte Funktionalität überschreiben und erweitern können, können Sie flexiblere und leistungsfähigere Python-Klassen erstellen, die Ihren spezifischen Anforderungen entsprechen.