Junior
Wann tritt das Überschreiben einer Methode (Overriding) in der Programmierung auf?
sobes.tech KI
Antwort von AI
Methodenüberschreibung tritt bei Vererbung auf, wenn eine Unterklasse ihre eigene Implementierung einer Methode bereitstellt, die bereits in der Elternklasse definiert ist. Die Methodensignatur (Name, Rückgabetyp und Anzahl/Typen der Argumente) muss mit der der Elternmethode übereinstimmen. Dies ermöglicht Polymorphismus: Ein Objekt der Unterklasse, das als Objekt der Elternklasse verwendet wird, ruft seine spezifische Implementierung der Methode auf.
Anwendungsbeispiele:
- Änderung der Logik des vererbten Verhaltens.
- Bereitstellung einer spezifischen Implementierung für eine gemeinsame Schnittstelle in der Unterklasse.
Wichtige Punkte:
- Es ist eine -is-ein-Beziehung (Vererbung) erforderlich.
- Die Methodensignatur muss übereinstimmen.
- Der Zugriffsmodifikator kann gleich oder weniger restriktiv sein als der der Elternmethode.
final- oderstatic-Methoden können nicht überschrieben werden (in den meisten Sprachen).
// Beispiel in Java
class Animal {
public void makeSound() {
System.out.println("Allgemeines Tiergeräusch");
}
}
class Dog extends Animal {
@Override // Annotation zeigt Überschreibung an
public void makeSound() {
System.out.println("Wuff!");
}
}
// Verwendung
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Ausgabe: Allgemeines Tiergeräusch
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Ausgabe: Wuff! (überschriebene Methode wird aufgerufen)
# Beispiel in Python
class Animal:
def make_sound(self):
print("Allgemeines Tiergeräusch")
class Dog(Animal):
def make_sound(self): # Überschreibung der Methode
print("Wuff!")
# Verwendung
# animal = Animal()
# animal.make_sound() # Ausgabe: Allgemeines Tiergeräusch
#
# dog = Dog()
# dog.make_sound() # Ausgabe: Wuff!