Explique o que são classes fechadas em Kotlin e como elas são usadas
sobes.tech IA
Resposta da IA
No Kotlin, não existe um conceito específico de "classes fechadas" (closed classes) como um tipo separado, mas há uma ideia semelhante: classes seladas (sealed classes).
A classe selada limita a hierarquia de herança: todas as subclasses dessa classe devem ser declaradas no mesmo arquivo. Isso permite que o compilador conheça todas as subclasses possíveis e as utilize, por exemplo, em expressões when sem a necessidade de escrever um ramo else.
O uso de classes seladas é conveniente para modelar um conjunto limitado de opções, como estados ou eventos.
Exemplo:
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("Dados: ${result.data}")
is Result.Error -> println("Erro: ${result.error.message}")
}
}
Se por "classes fechadas" entende-se classes com o modificador private ou internal, então são classes com escopo de visibilidade limitado: private — visível apenas dentro do arquivo, internal — dentro do módulo.