Sobes.tech
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- oder static-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!