Junior — Middle
¿Por qué en Kotlin está prohibida la herencia de data class?
sobes.tech AI
Respuesta de la IA
En Kotlin, la herencia de data class está prohibida porque data class genera automáticamente métodos como equals(), hashCode(), toString(), así como copy() y componentes para destructuración. Permitir la herencia podría llevar a ambigüedades y errores en el comportamiento de estos métodos, ya que una subclase puede cambiar el estado o la lógica, violando el contrato establecido en data class.
Por lo tanto, la prohibición de herencia garantiza la integridad y previsibilidad del comportamiento de data class.
Ejemplo:
data class User(val name: String, val age: Int)
// class AdminUser(name: String, age: Int, val adminLevel: Int) : User(name, age) // Error de compilación