Junior — Middle
Dans quels cas et à quel endroit peut-on déclarer des sous-classes si la classe est marquée comme sealed?
sobes.tech IA
Réponse de l'IA
En Kotlin, une classe marquée comme sealed limite la hiérarchie d'héritage : toutes les sous-classes de cette classe doivent être déclarées dans le même fichier que la classe sealed. Cela permet au compilateur de connaître l'ensemble complet des héritiers et de l'utiliser, par exemple, dans des expressions when sans avoir besoin d'écrire une branche else.
Autrement dit, les sous-classes d'une classe sealed peuvent être déclarées :
- Dans le même fichier où la classe
sealedest déclarée. - À l'intérieur même de la classe
sealed(classes imbriquées).
Exemple :
sealed class Result {
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
}
Ou
sealed class Result
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
Mais toutes ces sous-classes doivent se trouver dans le même fichier que la classe sealed. Cette restriction aide à assurer la sécurité des types et l'exhaustivité des vérifications.