Avatar ·

data class को विरासत में क्यों नहीं लिया जा सकता और इस सीमा को कैसे दूर किया जाए?

सभी को नमस्कार! मैं Kotlin सीख रहा हूँ और एक समस्या का सामना कर रहा हूँ: मैं सामान्य फ़ील्ड वाला एक बेस class बनाना चाहता हूँ, और फिर उससे कई data class को विरासत में लेना चाहता हूँ। उदाहरण के लिए, `name` और `age` फ़ील्ड वाला एक बेस class `Person` है, और उससे मैं अतिरिक्त फ़ील्ड `salary` वाला `Employee` और फ़ील्ड `group` वाला `Student` बनाना चाहता हूँ। लेकिन compiler कहता है: "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()` उत्पन्न करता है, और विरासत इन विधियों के अनुबंधों को तोड़ सकती है। लेकिन मुझे फ़ील्ड और तर्क का पुन: उपयोग करने की आवश्यकता है। class डेटा के पदानुक्रम को सही ढंग से कैसे व्यवस्थित करें? शायद कोई पैटर्न या विकल्प है? मैं कोड उदाहरणों और भाषा में ऐसा क्यों किया गया है, इसके स्पष्टीकरण के लिए आभारी रहूँगा। पहले से धन्यवाद!