Junior — Middle
In welchen Fällen und an welchem Ort können Unterklassen deklariert werden, wenn die Klasse als sealed gekennzeichnet ist?
sobes.tech KI
Antwort von AI
In Kotlin beschränkt eine als sealed gekennzeichnete Klasse die Vererbungshierarchie: Alle Unterklassen dieser Klasse müssen in derselben Datei wie die sealed-Klasse deklariert werden. Dies ermöglicht es dem Compiler, die vollständige Menge der Erben zu kennen und sie beispielsweise in when-Ausdrücken zu verwenden, ohne eine else-Klausel schreiben zu müssen.
Das heißt, Unterklassen einer sealed-Klasse können deklariert werden:
- In derselben Datei, in der die
sealed-Klasse deklariert ist. - Innerhalb der
sealed-Klasse selbst (verschachtelte Klassen).
Beispiel:
sealed class Result {
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
}
Oder
sealed class Result
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
Aber alle diese Unterklassen müssen sich in derselben Datei wie die sealed-Klasse befinden. Diese Einschränkung hilft, die Typsicherheit und die Vollständigkeit der Prüfungen zu gewährleisten.