Sobes.tech
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