Java Method Overloading

Java Method Overloading एक ऐसी सुविधा है जो एक class को एक ही नाम वाली multiple methods को एक अलग argument list के साथ रखने की अनुमति देती है। यह जावा में constructor overloading के समान है, जो एक class को एक अलग argument list के साथ एक से अधिक constructor रखने की अनुमति देता है। argument list को parameter list के रूप में भी जाना जाता है।

नोट: याद रखें कि Java Overloading और Java Overriding दोनों अलग-अलग चीजें हैं।

Method Overloading और Method Overriding

Method Overloading को और करीब से जानने के लिए सबसे पहले हम Method Overloading और Method Overriding दोनों के अंतर के बारे में समझ लेते है।

Method Overloading Method Overriding
(a) Same Method Name (a) Same Method Name
(b) Same Class (b) Different Class
(c) Different Arguments
  • Number of Arguments बदल कर
  • Arguments के data type बदल कर
  • Arguments के sequence को बदल कर
(c) Same Arguments
  • Same numbers of Arguments
  • Same data type of Arguments
  • Same sequence Arguments

जैसा की ऊपर दिए गए टेबल से समझ सकते है की Method Overloading में एक से ज्यादा method के Name और Class, same रह सकते है लेकिन इनके Arguments अलग होने चाहिए। चलिए निचे देख लेते है की Method Overloading के अलग अलग से कौन से तरीके है।

Method Overloading के तरीके

(a) Number of Arguments बदल कर
(b) Arguments के data type बदल कर
(c) Arguments के sequence को बदल कर

By changing number of arguments

अब इसमें होता यह है की हमें arguments की संख्या को बदलना पड़ता है, जैसे की अगर पहला method में 1 int है तो दुसरे method में भी 1 int कभी भी नहीं हो सकता है, दुसरे method में 1 int से ज्यादा होना चाहिए।

निचे हम एक उद्धारण से समझते है, इसमें हम int data type का उपयोग करेंगे, number of parameters को बदल कर।

Example: Method Overloading by changing number of arguments
public class MyClass {

  void show(int x) {
    System.out.println("This is the First method");
  }

  void show(int x, int y) {
    System.out.println("This is the Second method");
  }

  public static void main(String[] args) {
    MyClass myObj = new MyClass();
    myObj.show(20);
  }
}
// Result: This is First Method

उद्धारण को समझते हैं

1st : हमने 2 method बनाये जिनमे दोनों के name और class एक ही है show और Myclass.

2nd : अब हमने दोनों method show के arguments में एक ही data type का उपयोग किया वह हैं int.

3rd : लेकिन जब हमने arguments डाले तो तो उनका numbers बदल दिया यानि की पहले वाले method में 1 ही arguments पास किये जबकि दुसरे वाले method में हमने 2 arguments पास किये, और हमने ऐसा क्यू किया इसे समझते हैं।

मान लेते है की हमने दोनों method में arguments भी एक बराबर ही पास किये है यानि की 1 ही arguments. अब finally जब आप show को कॉल करते है, तो अब आप ही बताये Java कौन सा method को कॉल करेगा, 1 arguments वाला या 2 arguments वाला और यही पर Java कंफ्यूज हो जाता है। तो Java कंफ्यूज ना हो जाये इसलिए numbers of arguments बदल दिए जाते है ताकि जब हम method को कॉल करे तो Java को आसानी हो कि कौन सा method को प्रिंट कराना है, 1 arguments वाला या 2 arguments वाला।

उपरोक्त उदाहरणों में, हमने method को overload करने के लिए arguments की संख्या को बदल दिया है। हमने दो माध्यमों public modifier और staticकीवर्ड का उपयोग करके method को overload कर दिया है।

By changing the data type

नीचे दिए गए उदाहरण में, हम int और String data type का उपयोग करने जा रहे हैं।

Example: Method Overloading by changing data type
public class MyClass {

  void show(int age) {
    System.out.println("This is the First method");
  }

  void show(String age) {
    System.out.println("This is the Second method");
  }

  public static void main(String[] args) {
    MyClass myObj = new MyClass();
    myObj.show("Twenty-Eight");
  }
}
// Result: This is Second Method

उपरोक्त उदाहरणों में, numbers of arguments तो same है परन्तु इसमें data types बदल दिए गए हैं। इसमें int और String data types का उपयोग किया गया है, जिससे method को कॉल करते समय Java असानी से समझ जायेगा की कौन सा method को प्रिंट कराना हैं।

By Changing sequence of arguments

इसे हम निचे दिए गए उदाहरण से समझते हैं।

Example: Method Overloading by Changing sequence of arguments
public class MyClass {

  void student(int id, String name) {
    System.out.println("This is the First method");
  }

  void student(String name, int id) {
    System.out.println("This is the Second method");
  }

  public static void main(String[] args) {
    MyClass myObj = new MyClass();
    myObj.student("Ram", 15);
  }
}
// Result: This is the Second method

उपरोक्त उदाहरणों में, हमने data types का sequence को बदला है एक method में पहले int फिर उसके बाद String data types पास किया है, जबकि दुसरे method में हमने उसके विपरीत पहले में String फिर उसके बाद int पास किया है।

आपने देखा होगा की मैंने method को कॉल करते समय पहले second method को कॉल किया है उसके बाद first method को। बतादे इससे कोई फर्क नहीं पड़ता है, फर्क पड़ता है तो सिर्फ उनके arguments से।

टिप्स : सिंपल भाषा में समझे तो method Overloading में हमें यह देखना है की arguments किसी भी method में दुसरे का xerox नहीं होना चाहिए।
Article By: Brajlal Prasad
Created on: 17 Feb 2023  2043  Views
 Print Article
Report Error

If you want to report an error, or any suggestion please send us an email to [email protected]