Sobes.tech
Junior — Middle

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.