Junior
Quelle est la différence entre les méthodes normales et les méthodes d'extension en Kotlin?
sobes.tech IA
Réponse de l'IA
La méthode ordinaire est une fonction déclarée à l’intérieur d’une classe.
La méthode d’extension est une fonction déclarée en dehors de la classe, mais qui agit comme si elle était un membre de celle-ci. Lors de la déclaration d’une méthode d’extension, le nom de la classe destinataire à laquelle elle s’applique est spécifié.
// Méthode ordinaire
class MyClass {
fun myMethod() {
// implémentation de la méthode
}
}
// Méthode d’extension
fun String.removeVowels(): String {
// implémentation de la méthode
}
fun main() {
val myObject = MyClass()
myObject.myMethod() // Appel de la méthode ordinaire
val myString = "Hello"
val stringWithoutVowels = myString.removeVowels() // Appel de la méthode d’extension
}
Différences clés :
- Déclaration : Les méthodes ordinaires sont déclarées à l’intérieur de la classe, les méthodes d’extension, en dehors.
- Accès aux membres de la classe : Les méthodes ordinaires ont un accès direct aux membres
privateetprotectedde la classe. Les méthodes d’extension n’ont pas d’accès direct aux membresprivateetprotected. this: Dans une méthode ordinaire,thisfait référence à l’instance de la classe dans laquelle la méthode est déclarée. Dans une méthode d’extension,thisfait référence à l’instance de l’objet destinataire pour lequel l’extension est appelée.- Héritage : Les méthodes ordinaires peuvent être redéfinies dans des sous-classes. Les méthodes d’extension ne sont pas héritées et ne peuvent pas être redéfinies.
- Implémentation : Les méthodes ordinaires font partie de l’implémentation de la classe. Les méthodes d’extension sont implémentées séparément et ne modifient pas la classe d’origine.
Les méthodes d’extension sont utiles pour ajouter des fonctionnalités aux classes existantes sans les modifier, par exemple, aux classes de bibliothèques externes ou à la bibliothèque standard de Kotlin.