كيفية تمديد (وراثة) data class في Kotlin بشكل صحيح؟ الحلول البديلة الممكنة
```html
مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin وواجهت مشكلة غير متوقعة. أحتاج إلى إنشاء تسلسل هرمي للفئات لنمذجة الكيانات في التطبيق. على سبيل المثال، هناك فئة أساسية `User` تحتوي على حقلي `id` و `email`، وأريد إنشاء data class `AdminUser` يضيف حقل `role`.
لقد كتبت هذا الكود:
```kotlin
data class User(val id: Long, val email: String)
data class AdminUser(val id: Long, val email: String, val role: String) : User(id, email)
```
لكن المترجم يظهر خطأ: "data class may not inherit from a data class". لقد بحثت في Google وأدركت أنه لا يمكن توريث data class من data class آخر في Kotlin، لأن المترجم لا يستطيع إنشاء الطرق الصحيحة `equals()`، `hashCode()`، `toString()` و `copy()` لهذا التسلسل الهرمي.
لكن ماذا أفعل؟ لدي عدة كيانات متشابهة ذات حقول مشتركة، وأريد تجنب تكرار الكود. لقد جربت استخدام الفئات العادية، لكنني أفقد مزايا data class (التساوي التلقائي، copy، دوال)
```