यह सवाल Java overload confusionविधि से अधिक भार: एकल पैरामीटर बनाम बारी मापदंडों
मैं एक किताब पढ़ रहा हूँ और वहाँ अधिक भार है जहाँ से एक संकलक विधि बुलाया जा रहा है हल करने में सक्षम नहीं हो सकता है विधि के संबंध में एक विषय है के समान हो सकता है। पुस्तक पर उदाहरण दो पैरामीटर (int, double)
और (double, int)
के साथ ओवरलोडेड विधि का उपयोग करता है। इस विधि को कॉल करने जैसे ओवरलोडेड ट्वॉपरम (4, 5) एक कंपाइलर त्रुटि का कारण बनेंगे क्योंकि int को डबल तक पारित किया जा सकता है। मेरा सवाल यह है कि क्यों संकलक हल करने में सक्षम है कि कौन सा तरीका कॉल किया जाएगा यदि मेरा पैरामीटर केवल एक है?
public class Test {
public static void main(String[] args) {
Test t = new Test();
t.overloadedSingleParam(1); //this is working
t.overloadedTwoParam(4, 5); //this is NOT working
}
void overloadedSingleParam(double a) {
// do something here..
}
void overloadedSingleParam(int a) {
// do something here..
}
void overloadedTwoParam(double a, int b) {
// do something here..
}
void overloadedTwoParam(int a, double b) {
// do something here..
}
}
क्या आपका प्रश्न पहले से ही जुड़े हुए उत्तर में उत्तर नहीं दिया गया है? – CKing
आपके पास एक विधि है जो एक 'int' पैरामीटर लेती है। –
@jackjay हाँ, लेकिन int को दोहरे पैरामीटर में पारित किया जा सकता है, जावा अभी भी इसे हल करने में सक्षम क्यों है? – fuzzy28