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

Java में एक अतिभारित विधि के लिए `null` पास करने से` स्ट्रिंग` पैरामीटर के साथ विधि को क्यों कॉल किया जाता है?

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

] जब एक विधि आह्वान किया जाता है, तो कंपाइलर निर्धारित करता है कि वास्तविक तर्कों की संख्या और प्रकारों के आधार पर कॉल करने के लिए कौन सा ओवरलोडेड विधि है। सार्वजनिक शून्य विधि (ऑब्जेक्ट ओ) { System.out.println ("ऑब्जेक्ट वेरियन"); } सार्वजनिक शून्य विधि (स्ट्रिंग एस) { System.out.println ("स्ट्रिंग संस्करण"); } सार्वजनिक स्थैतिक शून्य main (String [] args[]) { MoneyCalc प्रश्न = नया मनीकॉल (); प्रश्न। मिथोड (नल); } … यह किसी विशेष प्रकार का मान नहीं है, लेकिन इसे ऑब्जेक्ट और स्ट्रिंग सहित किसी भी संदर्भ प्रकार के एक चर को सौंपा जा सकता है। जावा भाषा विनिर्देश (JLS) के अनुसार, सबसे विशिष्ट अधिभार को इसकी प्रयोज्यता और विशिष्टता के आधार पर चुना जाता है। इस मामले में, NULL दोनों तरीकों पर लागू होता है क्योंकि इसे ऑब्जेक्ट और स्ट्रिंग प्रकारों के चर को सौंपा जा सकता है। इस मामले में, विधि (स्ट्रिंग) अधिभार अधिक विशिष्ट है क्योंकि यह केवल प्रकार स्ट्रिंग के तर्कों को संभालने के लिए डिज़ाइन किया गया है। विधि (ऑब्जेक्ट) अधिभार अधिक सामान्य है क्योंकि यह टाइप ऑब्जेक्ट या इसके किसी भी उप -वर्गों के तर्कों को संभाल सकता है। MoneyCalc वर्ग, एक संकलन त्रुटि होगी। ऐसा इसलिए है क्योंकि न तो विधि (स्ट्रिंग) और न ही विधि (स्ट्रिंगबफ़र) इस मामले में अन्य की तुलना में अधिक विशिष्ट होगी, जिससे विधि चयन में एक अस्पष्टता हो।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3