Avatar ·

Pourquoi une data class ne peut-elle pas être héritée et comment contourner cette limitation ?

Bonjour à tous ! J'apprends Kotlin et j'ai rencontré un problème : je veux créer une classe de base avec des champs communs, puis en hériter plusieurs data class. Par exemple, j'ai une classe de base `Person` avec les champs `name` et `age`, et je veux créer `Employee` avec un champ supplémentaire `salary` et `Student` avec un champ `group`. Mais le compilateur dit : "Data class cannot be extended from other classes". Voici mon code : ```kotlin data class Person(val name: String, val age: Int) data class Employee(name: String, age: Int, val salary: Double) : Person(name, age) // Erreur ! ``` Je comprends que les data class génèrent automatiquement `equals()`, `hashCode()`, `toString()`, `copy()` et `componentN()`, et que l'héritage pourrait casser les contrats de ces méthodes. Mais j'ai besoin de réutiliser les champs et la logique. Comment organiser correctement une hiérarchie de classes de données ? Existe-t-il un pattern ou une alternative ? Je serais reconnaissant pour des exemples de code et une explication de pourquoi cela a été fait ainsi dans le langage. Merci d'avance !