Explica qué son las clases cerradas en Kotlin y cómo se utilizan
sobes.tech AI
Respuesta de la IA
En Kotlin no existe un concepto específico de "clases cerradas" (closed classes) como un tipo separado, pero hay una idea similar: las clases selladas (sealed classes).
La clase sellada limita la jerarquía de herencia: todas las subclases de dicha clase deben ser declaradas en el mismo archivo. Esto permite que el compilador conozca todas las posibles subclases y las utilice, por ejemplo, en expresiones when sin necesidad de escribir una rama else.
El uso de clases selladas es conveniente para modelar un conjunto limitado de opciones, como estados o eventos.
Ejemplo:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Data: ${result.data}")
is Result.Error -> println("Error: ${result.error.message}")
}
}
Si por "clases cerradas" se entienden clases con el modificador private o internal, entonces son clases con un ámbito de visibilidad restringido: private solo visible dentro del archivo, internal dentro del módulo.