Sobes.tech
Junior — Middle

Erklären Sie den Unterschied zwischen einer Methode, die mit demselben Namen und derselben Signatur in einer Klasse implementiert wird und ihrer Überladung, und der Überschreibung der Methode in abgeleiteten Klassen.

sobes.tech KI

Antwort von AI

Methodenüberladung (overloading) ist, wenn in einer Klasse mehrere Methoden mit demselben Namen, aber unterschiedlicher Signatur (unterschiedliche Parameter) erstellt werden. Dies ermöglicht es, die Methode mit verschiedenen Argumenten aufzurufen, und der Compiler wählt die passende Variante.

Methodenüberschreibung (overriding) findet in einer erbenden Klasse statt, wenn eine Methode mit derselben Signatur wie in der Basisklasse neu implementiert wird, um das Verhalten der Basismethode zu ändern oder zu erweitern.

Beispiel in Swift:

class Animal {
    func sound() {
        print("Ein Geräusch")
    }
}

class Dog: Animal {
    override func sound() { // Überschreibung
        print("Bellen")
    }

    func sound(volume: Int) { // Überladung
        print("Bellen bei Lautstärke \(volume)")
    }
}

Hier überschreibt sound() in der Klasse Dog die Methode der Basisklasse Animal, und sound(volume:) ist eine Überladung der Methode mit einem anderen Parametersatz.