Sobes.tech
Junior — Middle

¿Qué se entiende por una clase con herencia limitada y cómo se utiliza en Kotlin?

sobes.tech AI

Respuesta de la IA

En Kotlin, una clase con herencia limitada es una clase que no puede ser heredada de manera arbitraria, sino solo por clases específicas o en módulos determinados. Para ello se utiliza la palabra clave sealed (clase sellada).

Las clases selladas permiten limitar la jerarquía de herencia: todos los subclases deben ser declarados en el mismo archivo que la clase sellada. Esto es útil para implementar un conjunto limitado de opciones, por ejemplo, al trabajar con estados o resultados.

Ejemplo de uso de una clase sellada:

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("Datos: ${result.data}")
        is Result.Error -> println("Error: ${result.error.message}")
        Result.Loading -> println("Cargando...")
    }
}

De esta forma, la clase sellada limita la herencia y permite que el compilador verifique la exhaustividad de las expresiones when.