Junior
Wat is het verschil tussen gewone en uitbreidende methoden in Kotlin?
sobes.tech AI
Antwoord van AI
De gewone methode is een functie die binnen een klasse wordt gedeclareerd.
De uitbreidende methode is een functie die buiten de klasse wordt gedeclareerd, maar zo werkt alsof het een lid ervan is. Bij het declareren van een uitbreidende methode wordt de naam van de ontvangende klasse aangegeven waarop het wordt toegepast.
// Gewone methode
class MyClass {
fun myMethod() {
// implementatie van de methode
}
}
// Uitbreidende methode
fun String.removeVowels(): String {
// implementatie van de methode
}
fun main() {
val myObject = MyClass()
myObject.myMethod() // Aanroep van de gewone methode
val myString = "Hello"
val stringWithoutVowels = myString.removeVowels() // Aanroep van de uitbreidende methode
}
Belangrijke verschillen:
- Declaratie: Gewone methoden worden binnen de klasse gedeclareerd, uitbreidende methoden buiten.
- Toegang tot klassemleden: Gewone methoden hebben directe toegang tot
privateenprotectedleden van de klasse. Uitbreidende methoden hebben geen directe toegang totprivateenprotectedleden. this: In een gewone methode verwijstthisnaar de instantie van de klasse waarin de methode is gedeclareerd. In een uitbreidende methode verwijstthisnaar de instantie van het ontvangende object waarvoor de uitbreiding wordt aangeroepen.- Erfelijkheid: Gewone methoden kunnen worden overschreven in subklassen. Uitbreidende methoden worden niet geërfd en kunnen niet worden overschreven.
- Implementatie: Gewone methoden maken deel uit van de implementatie van de klasse. Uitbreidende methoden worden afzonderlijk geïmplementeerd en wijzigen de oorspronkelijke klasse niet.
Uitbreidende methoden zijn handig om functionaliteit toe te voegen aan bestaande klassen zonder ze te wijzigen, bijvoorbeeld aan klassen uit externe bibliotheken of de standaardbibliotheek van Kotlin.