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.