Sobes.tech
Junior — Middle

Explique la différence entre une méthode qui est implémentée avec le même nom et la même signature dans une classe et sa surcharge, et la redéfinition de la méthode dans les classes héritées.

sobes.tech IA

Réponse de l'IA

La surcharge de méthode (overloading) consiste à créer plusieurs méthodes avec le même nom dans une classe, mais avec des signatures différentes (différents ensembles de paramètres). Cela permet d’appeler la méthode avec des arguments différents, et le compilateur choisit la version appropriée.

La redéfinition de méthode (overriding) se produit dans une classe héritée, lorsque une méthode avec la même signature que dans la classe de base est réimplémentée pour modifier ou étendre le comportement de la méthode de base.

Exemple en Swift:

class Animal {
    func sound() {
        print("Un son")
    }
}

class Dog: Animal {
    override func sound() { // redéfinition
        print("Aboyer")
    }

    func sound(volume: Int) { // surcharge
        print("Aboyer au volume \(volume)")
    }
}

Ici, sound() dans la classe Dog redéfinit la méthode de la classe de base Animal, et sound(volume:) est une surcharge de la méthode avec un ensemble différent de paramètres.