फंक्शन ओवरलोडिंग (Function Overloading)

यदि एक से अधिक फंक्शन्स को एक ही नाम से बनाया जाए किंतु उनके आरग्यूूमेंट्स की संख्या अथवा डेटा टाइप अलग-अलग हों तो इसे फंक्शन ओवरलोडिंग कहते हैं। फंक्शन ओवरलोडिंग में जब किसी फंक्शन को काॅल किया जाता है तो कंपाइलर, फंक्शन के आरग्यूमेंट्स का मिलान करके उपयुक्त फंक्शन को काॅल कर देता है। कंपाइलर फंक्शन के रिटर्न टाइप का मिलान नहीं करता है, अर्थात् फंक्शन का रिटर्न टाइप समान हो या अलग-अलग इससे कोई फर्क नहीं पड़ता है। फंक्शन ओवरलोडिंग आॅब्जेक्ट ओरिएन्टेड प्रोग्रामिंग में पोलिमोर्फिज़्म (polymorphism) का ही एक उदाहरण है।

जब एक ही प्रकार के कार्य को अलग-अलग परिस्थितियों में करना हो तो इसके लिए फंक्शन ओवरलोडिंग का प्रयोग किया जाता है। उदाहरण के लिए यदि हमें वर्ग तथा आयत का क्षेत्रफल ज्ञात करने के लिए दो अलग-अलग फंक्शन बनाने हैं तो इन दोनों फंक्शन के नाम समान, किंतु इनमें भेजे जाने वाले आरग्यूमेंट्स की संख्या अलग हो सकती है।

नीचे दिए गए उदाहरण में दो समान नाम के फंक्शन्स में एक ही टाइप (int) के आरग्यूमेंट्स पास किए गए हैं किंतु इनकी संख्या अलग-अलग है।

class Main
{
	public static void main(String[] args)
	{
		add(2, 3);
		add(2, 3, 4);
	}
	static void add(int x, int y)
	{
		System.out.println(x + y);
	}
	static void add(int x, int y, int z)
	{
		System.out.println(x + y + z);
	}
}

Output:

5
9

नीचे दिए गए उदाहरण में दो समान नाम के फंक्शन्स में अलग-अलग टाइप के आरग्यूमेंट्स पास किए गए हैं।

class Main
{
	public static void main(String[] args)
	{
		add(2, 3);
		add(5, 4.5f);
	}
	static void add(int x, int y)
	{
		System.out.println(x + y);
	}
	static void add(int x, float y)
	{
		System.out.println(x + y);
	}
}

Output:

5
9.5

नीचे दिए गए उदाहरण में दो समान नाम के फंक्शन्स में आरग्यूमेंट्स समान हैं किन्तु उनके क्रम में परिवर्तन किया गया है।

class Main
{
	public static void main(String[] args)
	{
		add(2.25f, 1);
		add(5, 4.5f);
	}
	static void add(float x, int y)
	{
		System.out.println(x + y);
	}
	static void add(int x, float y)
	{
		System.out.println(x + y);
	}
}

Output:

3.25
9.5
सुझाव / कमेंट