Sobes.tech
Junior — Middle

Erklären Sie, was geschlossene Klassen in Kotlin sind und wie sie verwendet werden

sobes.tech KI

Antwort von AI

In Kotlin gibt es kein spezielles Konzept von "abgeschlossenen Klassen" (closed classes) als eigen Typ, aber es gibt eine ähnliche Idee: sealed Klassen (versiegelte Klassen).

Eine sealed Klasse beschränkt die Vererbungshierarchie: alle Unterklassen dieser Klasse müssen im selben Datei deklariert werden. Das ermöglicht dem Compiler, alle möglichen Unterklassen zu kennen und sie beispielsweise in when-Ausdrücken zu verwenden, ohne eine else-Klausel schreiben zu müssen.

Die Verwendung von sealed Klassen ist praktisch, um eine begrenzte Anzahl von Optionen zu modellieren, z.B. Zustände oder Ereignisse.

Beispiel:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Daten: ${result.data}")
        is Result.Error -> println("Fehler: ${result.error.message}")
    }
}

Wenn "abgeschlossene Klassen" Klassen mit dem Modifier private oder internal meinen, dann sind das Klassen mit eingeschränktem Sichtbarkeitsbereich: private — nur innerhalb der Datei sichtbar, internal — innerhalb des Moduls.