Sobes.tech
Junior — Middle

O que se entende por uma classe com herança limitada e como ela é usada em Kotlin?

sobes.tech IA

Resposta da IA

Em Kotlin, uma classe com herança limitada é uma classe que não pode ser herdada arbitrariamente, mas apenas por classes específicas ou em módulos determinados. Para isso, utiliza-se a palavra-chave sealed (classe selada).

As classes seladas permitem limitar a hierarquia de herança: todas as subclasses devem ser declaradas no mesmo arquivo que a classe selada. Isso é útil para implementar um conjunto limitado de opções, por exemplo, ao trabalhar com estados ou resultados.

Exemplo de uso de uma classe selada:

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

Assim, a classe selada limita a herança e permite ao compilador verificar a completude das expressões when.