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