Avatar ·

لماذا لا يمكن توريث data class وكيفية تجاوز هذا القيد؟

مرحبًا بالجميع! أنا أتعلم Kotlin وواجهت مشكلة: أريد إنشاء فئة أساسية للبيانات تحتوي على حقول مشتركة، ثم توريث عدة data class منها. على سبيل المثال، هناك فئة أساسية `Person` تحتوي على حقلي `name` و `age`، وأريد إنشاء `Employee` مع حقل إضافي `salary` و `Student` مع حقل `group`. لكن المترجم يقول: "Data class cannot be extended from other classes". إليك الكود الخاص بي: ```kotlin data class Person(val name: String, val age: Int) data class Employee(name: String, age: Int, val salary: Double) : Person(name, age) // خطأ! ``` أفهم أن data class يولد تلقائيًا `equals()` و `hashCode()` و `toString()` و `copy()` و `componentN()`، وأن التوريث قد يكسر تعاقدات هذه الدوال. لكني بحاجة لإعادة استخدام الحقول والمنطق. كيف يمكن تنظيم تسلسل هرمي لفئات البيانات بشكل صحيح؟ هل هناك نمط أو بديل؟ سأكون ممتنًا لأمثلة الكود وشرح لماذا تم تصميم اللغة بهذه الطريقة. شكرًا مقدمًا!