Junior — Middle
Peut-on utiliser des noms de paramètres différents dans la signature lors de la surcharge de méthodes?
sobes.tech IA
Réponse de l'IA
En Swift, lors de la redéfinition de méthodes, il est possible d'utiliser des noms de paramètres différents dans la signature, mais il est important de comprendre que pour le compilateur, ce qui compte ce sont les noms externes des paramètres (noms de paramètres externes), et non les noms internes (noms de paramètres internes).
Lors de la redéfinition d'une méthode, l'interface externe doit correspondre pour que la méthode soit correctement redéfinie. Les noms internes des paramètres peuvent différer, car ils ne sont visibles qu'à l'intérieur du corps de la méthode.
Exemple:
class Parent {
func greet(name personName: String) {
print("Hello, \(personName)")
}
}
class Child: Parent {
override func greet(name friendName: String) { // le paramètre externe "name" correspond
print("Hi, \(friendName)")
}
}
Ici, le paramètre externe name correspond, et le nom interne (personName et friendName) diffère, ce qui est autorisé.