Avatar ·

¿Por qué no se puede heredar de una data class y cómo sortear esta limitación?

¡Hola a todos! Estoy aprendiendo Kotlin y me encontré con un problema: quiero crear una clase base de datos con campos comunes y luego heredar de ella varias data class. Por ejemplo, tengo una clase base `Person` con los campos `name` y `age`, y a partir de ella quiero hacer `Employee` con el campo adicional `salary` y `Student` con el campo `group`. Pero el compilador dice: "Data class cannot be extended from other classes". Aquí está mi código: ```kotlin data class Person(val name: String, val age: Int) data class Employee(name: String, age: Int, val salary: Double) : Person(name, age) // ¡Error! ``` Entiendo que data class genera automáticamente `equals()`, `hashCode()`, `toString()`, `copy()` y `componentN()`, y la herencia podría romper los contratos de estos métodos. Pero necesito reutilizar campos y lógica. ¿Cómo organizar correctamente una jerarquía de clases de datos? ¿Quizás hay algún patrón o alternativa? Agradecería ejemplos de código y una explicación de por qué se hizo así en el lenguaje. ¡Gracias de antemano!