जावा कक्षाओं के एकाधिक वंशानुक्रम का समर्थन नहीं करता है, और मानक तरीके इस प्रतिबंध को दरकिनार नहीं करते हैं, क्योंकि कक्षाएं स्थिति को बनाए रख सकती हैं (उदाहरण चर के साथ), लेकिन इंटरफेस नहीं कर सकते हैं।
डिफ़ॉल्ट विधियाँ व्यवहार के एकाधिक वंशानुक्रम का एक सीमित रूप प्रदान करती हैं, जिससे एक वर्ग को डिफ़ॉल्ट विधियों के साथ कई इंटरफ़ेस से व्यवहार प्राप्त करने की अनुमति मिलती है।
संघर्ष तब हो सकता है जब एक वर्ग द्वारा कार्यान्वित दो इंटरफेस में एक ही डिफ़ॉल्ट विधि होती है, जैसा कि दो इंटरफेस, अल्फा और बीटा के मामले में, दोनों रीसेट() विधि के साथ होते हैं।
संघर्षों को सुलझाने के नियम:
1 वर्ग कार्यान्वयन को डिफ़ॉल्ट इंटरफ़ेस कार्यान्वयन पर प्राथमिकता मिलती है।
2 यदि दो इंटरफेस में एक ही डिफ़ॉल्ट विधि है और क्लास विधि को ओवरराइड नहीं करता है, तो एक त्रुटि उत्पन्न होगी।
3 यदि एक इंटरफ़ेस दूसरे को विरासत में मिला है और दोनों एक ही डिफ़ॉल्ट विधि को परिभाषित करते हैं, तो विरासत में मिले इंटरफ़ेस के संस्करण को प्राथमिकता दी जाती है।
किसी इंटरफ़ेस के मानक कार्यान्वयन को स्पष्ट रूप से संदर्भित करने के लिए, आप सिंटैक्स का उपयोग कर सकते हैं: NameInterface.super.NameMethod().
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3