मुझे पता है कि विधि को ओवरलोड कैसे करें, और विधि को ओवरराइड कैसे करें। लेकिन क्या एक ही समय में एक विधि को ओवरलोड और ओवरराइड करना संभव है? यदि हां, तो कृपया एक उदाहरण दें।जावा में अधिभारित और ओवरराइड
उत्तर
ओवरलोडिंग और ओवरराइडिंग पूरक चीजें हैं, ओवरलोडिंग का मतलब एक ही विधि का नाम है, लेकिन विभिन्न पैरामीटर, और ओवरराइडिंग का मतलब समान पैरामीटर के साथ उप-वर्ग में एक ही विधि का नाम है। इसलिए ओवरलोडिंग और ओवरराइडिंग के लिए एक ही समय में ऐसा संभव नहीं है क्योंकि ओवरलोडिंग विभिन्न मानकों का तात्पर्य है।
उदाहरण:
class A {
public void doSth() { /// }
}
class B extends A {
public void doSth() { /* method overriden */ }
public void doSth(String b) { /* method overloaded */ }
}
चीयर्स!
ओवरलोडिंग और ओवरलोडिंग केवल अवशोषण हैं। ओवरलोडिंग का मतलब है कि संकलक कॉल करने के लिए कौन से फ़ंक्शन को संबोधित करने के लिए पैरामीटर के प्रकार और संख्या के संयोजन के साथ नाम का उपयोग करता है। हकीकत में एक विधि अधिभारित करने से यह कुछ अलग नामकरण से अलग नहीं है क्योंकि संकलक को देखने के लिए संकलक का उपयोग कुंजी और पैरामीटर सूची का संयोजन है।
ओवरराइडिंग एक ही सिद्धांत है, सिवाय इसके कि कंपाइलर super
कीवर्ड के साथ अतिव्यापी फ़ंक्शन को संबोधित कर सकता है।
तो क्या आप ओवरलोडेड फ़ंक्शन को ओवरराइड कर सकते हैं? हां, चूंकि ओवरलोडेड विधि कंपाइलर की आंखों में एक पूरी तरह से अलग विधि है।
ओवरराइडिंग बिल्कुल वही बात नहीं है। कॉल करने के तरीके के बारे में निर्णय रनटाइम को स्थगित कर दिया गया है। संकलक इसे तय नहीं करता है। – EJP
धन्यवाद, यह सहायक है! –
@EJP - आखिरकार संकलक निर्णय लेता है भले ही यह एक vtables के निर्माण और गतिशील प्रेषण की सुविधा के लिए vpointers के असाइनमेंट के माध्यम से सारणित है। बंधे संबंधों को कहीं भी शुरू किया जाना है। – nsfyn55
यह आपके लिए क्या मतलब है निर्भर करता है। सुपरक्लास में ओवरलोडेड विधि के लिए एक विधि ओवरराइड हो सकती है। और आप एक विधि को अधिभारित कर सकते हैं जिसे आप एक साथ विधि का उपयोग करके ओवरराइड कर रहे हैं।
हालांकि, आपके पास एक विधि नहीं हो सकती है जो नया ओवरलोड और ओवरराइड दोनों है। एक ओवरराइड होने की विधि के लिए, सुपरक्लास में एक ही हस्ताक्षर वाला एक और तरीका पहले से मौजूद होना चाहिए ... और इसका मतलब है कि यह विधि नया ओवरराइड नहीं हो सकती है।
- 1. जावा जेनेरिक विधि विरासत और ओवरराइड नियम
- 2. क्या मैं जावा में चर अधिभारित कर सकता हूं?
- 3. ओवरराइड और गैर ओवरराइड निर्माता
- 4. अधिभारित कन्स्ट्रक्टर अस्पष्टता
- 5. जावाडोक पुन: उपयोग और अधिभारित विधियों
- 6. जावा विधि को ओवरराइड करना
- 7. आभासी, ओवरराइड, नए और सील ओवरराइड
- 8. जावा ओवरराइड ऑब्जेक्ट बराबर() विधि
- 9. जावा प्रलेखन ओवरराइड विधि InheritDoc
- 10. एक अधिभारित हटाए गए
- 11. अधिभारित पाइसाइड सिग्नल (QComboBox)
- 12. अधिभारित ऑपरेटर नहीं मिला
- 13. बेस क्लास अधिभारित विधि
- 14. क्या पायथन में + = अधिभारित करने का कोई तरीका है?
- 15. जावा स्विंग: डिफॉल्ट कॉम्बोबॉक्सबॉक्स और ओवरराइड विधियों को बढ़ाएं
- 16. जावा जेनेरिक - एक अमूर्त विधि को ओवरराइड करना और सबक्लास
- 17. उपclip ओवरराइड और प्रतिबद्ध?
- 18. जेनेरिक विधियों को अधिभारित करते समय जावा 5 और 6 के बीच अलग व्यवहार
- 19. जावा सेट संग्रह - ओवरराइड बराबर विधि
- 20. ओवरराइड विधियों पर जावा क्लास.getMethods() व्यवहार
- 21. जावा सर्वलेट ओवरराइड init (ServletConfig config)
- 22. उसी नाम के साथ ज्योथन ओवरराइड विधि
- 23. जावा में ठीक से toString() को ओवरराइड कैसे करें?
- 24. वस्तु निर्माण के दौरान जावा ओवरराइड
- 25. जावा या एंड्रॉइड में @ ओवरराइड की आवश्यकता क्यों है?
- 26. उपज रिटर्न का अधिभारित उपयोग
- 27. जावा में ओवरराइड विधि के एक्सेस संशोधक को बदलें?
- 28. मैं जावा में मुद्रा प्रतीकों को ओवरराइड कैसे करूं?
- 29. जावा में सिस्टम प्रॉपर्टी ओवरराइड करें (कोड के बिना)
- 30. सी # वर्चुअल और ओवरराइड कीवर्ड
यदि आप चाहते हैं, तो आप एक ओवरलोडेड विधि को ओवरराइड कर सकते हैं। यह जितना करीब हो सकता है उतना करीब है। – user845279
जब ऐसा होता है, तो विधि के बाध्यकारी (स्थैतिक या गतिशील के मामले में) के लिए ज़िम्मेदार कौन सा है? ओवरराइडिंग या ओवरलोडिंग? – zgulser