Sobes.tech
Junior — Middle

Wie unterscheidet man eine Methodenüberladung von einer Überschreibung in der objektorientierten Programmierung?

sobes.tech KI

Antwort von AI

Methodenüberladung (overloading) und Methodenshadowing (overriding) sind unterschiedliche Konzepte in der objektorientierten Programmierung:

  • Methodenüberladung: Es gibt mehrere Methoden mit demselben Namen in einer Klasse, aber mit unterschiedlichen Parametern (Typ, Anzahl). Dies ermöglicht es, die Methode mit verschiedenen Argumenten aufzurufen.

  • Methodenüberschreibung: Eine Unterklasse stellt eine eigene Implementierung einer Methode bereit, die bereits in der Basisklasse mit derselben Signatur (Name und Parameter) definiert ist. Dies ermöglicht es, das Verhalten der Methode in der Unterklasse zu ändern.

Beispiel in Java:

class Animal {
    void sound() {
        System.out.println("Ein Geräusch");
    }

    void sound(String mood) { // Überladung
        System.out.println("Geräusch bei " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // Überschreibung
        System.out.println("Bellen");
    }
}

Hier überschreibt sound() in der Klasse Dog die Methode der Basisklasse, und sound(String mood) ist eine Überladung der Methode in derselben Klasse Animal.