Por que data class não pode ser herdada e como contornar essa limitação?
Olá a todos! Estou estudando Kotlin e me deparei com um problema: quero criar uma classe base de dados com campos comuns e, em seguida, herdar dela várias data class. Por exemplo, existe uma classe base `Person` com campos `name` e `age`, e a partir dela quero criar `Employee` com um campo adicional `salary` e `Student` com o campo `group`. Mas o compilador diz: "Data class cannot be extended from other classes". Aqui está meu 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) // Erro!
```
Eu entendo que data class gera automaticamente `equals()`, `hashCode()`, `toString()`, `copy()` e `componentN()`, e a herança pode quebrar os contratos desses métodos. Mas preciso reutilizar campos e lógica. Como organizar corretamente uma hierarquia de classes de dados? Existe algum padrão ou alternativa? Ficarei grato por exemplos de código e explicação de por que isso é feito na linguagem. Desde já, obrigado!