Junior
Was ist der Unterschied zwischen normalen und erweiterten Methoden in Kotlin?
sobes.tech KI
Antwort von AI
Die gewöhnliche Methode ist eine Funktion, die innerhalb einer Klasse deklariert ist.
Die Erweiterungsmethode ist eine Funktion, die außerhalb der Klasse deklariert ist, aber so wirkt, als wäre sie ein Mitglied davon. Bei der Deklaration einer Erweiterungsmethode wird der Name der Empfängerklasse angegeben, auf die sie angewendet wird.
// Gewöhnliche Methode
class MyClass {
fun myMethod() {
// Implementierung der Methode
}
}
// Erweiterungsmethode
fun String.removeVowels(): String {
// Implementierung der Methode
}
fun main() {
val myObject = MyClass()
myObject.myMethod() // Aufruf der gewöhnlichen Methode
val myString = "Hello"
val stringWithoutVowels = myString.removeVowels() // Aufruf der Erweiterungsmethode
}
Wichtige Unterschiede:
- Deklaration: Gewöhnliche Methoden werden innerhalb der Klasse deklariert, Erweiterungsmethoden außerhalb.
- Zugriff auf Klassenmitglieder: Gewöhnliche Methoden haben direkten Zugriff auf
privateundprotectedMitglieder der Klasse. Erweiterungsmethoden haben keinen direkten Zugriff aufprivateundprotectedMitglieder. this: In einer gewöhnlichen Methode bezieht sichthisauf die Instanz der Klasse, in der die Methode deklariert ist. In einer Erweiterungsmethode bezieht sichthisauf die Instanz des Empfängerobjekts, für das die Erweiterung aufgerufen wird.- Vererbung: Gewöhnliche Methoden können in Unterklassen überschrieben werden. Erweiterungsmethoden werden nicht vererbt und können nicht überschrieben werden.
- Implementierung: Gewöhnliche Methoden sind Teil der Klassenimplementierung. Erweiterungsmethoden werden separat implementiert und ändern die ursprüngliche Klasse nicht.
Erweiterungsmethoden sind nützlich, um Funktionalitäten zu bestehenden Klassen hinzuzufügen, ohne sie zu modifizieren, z.B. bei Klassen aus externen Bibliotheken oder der Standardbibliothek von Kotlin.