Sobes.tech
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 sealed est 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.