"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मल्टी-इंटरफेस विधि को फिर से लिखते समय जावा अस्पष्टता समस्या को कैसे हल करता है?

मल्टी-इंटरफेस विधि को फिर से लिखते समय जावा अस्पष्टता समस्या को कैसे हल करता है?

2025-04-13 को पोस्ट किया गया
ब्राउज़ करें:937

] हालाँकि, जब इन इंटरफेस में समान हस्ताक्षर वाले तरीके होते हैं, तो एक प्रश्न उठता है: कंपाइलर कैसे हल करता है कि कौन सा इंटरफ़ेस विधि ओवरराइड है? संकलक अपने इंटरफ़ेस मूल के आधार पर तरीकों के बीच अंतर नहीं करता है। int f (); } इंटरफ़ेस बी { int f (); } क्लास टेस्ट इम्प्लीमेंट्स ए, बी { @Override सार्वजनिक int f () { रिटर्न 0; } }

How Does Java Resolve Ambiguity When Overriding Methods in Multiple Interfaces?
इस परिदृश्य में, परीक्षण A और B दोनों को लागू करता है, और दोनों इंटरफेस एक ही हस्ताक्षर के साथ f () नामक एक विधि को परिभाषित करते हैं। परीक्षण में इस पद्धति को ओवरराइड करके, वर्ग दोनों इंटरफेस से एफ () विधि को प्रभावी ढंग से ओवरराइड करता है, भले ही केवल एक @Override एनोटेशन मौजूद है। नतीजतन, कंपाइलर पहले ओवरराइडिंग विधि का चयन करता है, जो इसके इंटरफ़ेस मूल की परवाह किए बिना सामना करता है। ऐसे मामलों में, कंपाइलर एक त्रुटि की रिपोर्ट करेगा, क्योंकि एक ही हस्ताक्षर के साथ दो तरीके लेकिन एक ही वर्ग में अलग -अलग रिटर्न प्रकारों के लिए संभव नहीं है। शून्य वर्तमान (); } इंटरफ़ेस अतिथि { बूलियन वर्तमान (); } क्लास प्रेजेंटेबल इम्प्लीमेंट्स गिफ्ट, गेस्ट { @Override सार्वजनिक शून्य वर्तमान () { System.out.println ("एक उपहार के रूप में वर्तमान!"); } }

यहाँ, उपहार। नतीजतन, प्रस्तुत करने योग्य दोनों इंटरफेस को लागू नहीं कर सकते हैं क्योंकि वे ओवरराइडिंग नियमों का उल्लंघन करते हैं।

निष्कर्ष में, जब कोई वर्ग ओवरराइड-समतुल्य तरीकों के साथ कई इंटरफेस को लागू करता है, तो कंपाइलर पहचानता है कि लागू करने के लिए केवल एक ही विधि है, और ओवरराइडिंग विधि पर @Override एनोटेशन सभी इंटरफेस पर लागू होता है। हालाँकि, विधि हस्ताक्षर के बीच असंगतता संकलन त्रुटियों को जन्म देगी।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3