Junior — Middle
Por que é proibido herdar de data class em Kotlin?
sobes.tech IA
Resposta da IA
No Kotlin, a herança de data class é proibida porque data class gera automaticamente métodos como equals(), hashCode(), toString(), bem como copy() e componentes para destruição. Permitir herança pode levar a ambiguidades e erros no comportamento desses métodos, pois uma subclasse pode alterar o estado ou a lógica, violando o contrato estabelecido em data class.
Assim, a proibição de herança garante a integridade e a previsibilidade do comportamento de data class.
Exemplo:
data class User(val name: String, val age: Int)
// class AdminUser(name: String, age: Int, val adminLevel: Int) : User(name, age) // Erro de compilação