Warum data class nicht vererbt werden kann und wie man diese Einschränkung umgeht?
Hallo zusammen! Ich lerne Kotlin und bin auf ein Problem gestoßen: Ich möchte eine Basis-Datenklasse mit gemeinsamen Feldern erstellen und dann mehrere data class davon ableiten. Zum Beispiel gibt es eine Basisklasse `Person` mit den Feldern `name` und `age`, und davon möchte ich `Employee` mit dem zusätzlichen Feld `salary` und `Student` mit dem Feld `group` ableiten. Aber der Compiler sagt: "Data class cannot be extended from other classes". Hier ist mein Code:
```kotlin
data class Person(val name: String, val age: Int)
data class Employee(name: String, age: Int, val salary: Double) : Person(name, age) // Fehler!
```
Ich verstehe, dass data class automatisch `equals()`, `hashCode()`, `toString()`, `copy()` und `componentN()` generiert, und Vererbung die Verträge dieser Methoden brechen könnte. Aber ich muss Felder und Logik wiederverwenden. Wie organisiert man eine Hierarchie von Datenklassen richtig? Gibt es vielleicht ein Pattern oder eine Alternative? Ich wäre dankbar für Codebeispiele und eine Erklärung, warum die Sprache das so gemacht hat. Vielen Dank im Voraus!