Sobes.tech
Junior — Middle

Qu'est-ce qu'une classe avec héritage limité et comment est-elle utilisée en Kotlin?

sobes.tech IA

Réponse de l'IA

En Kotlin, une classe avec héritage limité est une classe qui ne peut pas être héritée arbitrairement, mais uniquement par des classes spécifiques ou dans certains modules. Pour cela, le mot-clé sealed (classe scellée) est utilisé.

Les classes scellées permettent de limiter la hiérarchie d'héritage : toutes les sous-classes doivent être déclarées dans le même fichier que la classe scellée. Cela est utile pour implémenter un ensemble limité d'options, par exemple lors du travail avec des états ou des résultats.

Exemple d'utilisation d'une classe scellée :

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

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Données : ${result.data}")
        is Result.Error -> println("Erreur : ${result.error.message}")
        Result.Loading -> println("Chargement...")
    }
}

Ainsi, la classe scellée limite l'héritage et permet au compilateur de vérifier l'exhaustivité des expressions when.