Sobes.tech
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 private und protected Mitglieder der Klasse. Erweiterungsmethoden haben keinen direkten Zugriff auf private und protected Mitglieder.
  • this: In einer gewöhnlichen Methode bezieht sich this auf die Instanz der Klasse, in der die Methode deklariert ist. In einer Erweiterungsmethode bezieht sich this auf 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.