Java में Method overloading और Method overriding में अंतर
- overloading compile time पर होती है जबकि overriding run time के दौरान होती है: overloading में method call की इसकी definition से binding compile time पर होती है, हालांकि overriding में method call की इसकी definition में binding , runtime पर होता है।
- Static methods को overload किया जा सकता है जिसका अर्थ है कि एक class में एक ही नाम की एक से अधिक static method हो सकती हैं। static methods को override नहीं किया जा सकता है, भले ही आप child class में एक ही static method को declare कर दें, लेकिन इसका parent class के methods से कोई लेना-देना नहीं है।
- method overloading और method overriding में सबसे बुनियादी अंतर यह है कि overloading एक ही class में की जाती है जबकि overriding के लिए parent और child classes की आवश्यकता होती है।
- overloaded method के लिए static binding का उपयोग किया जाता है और override method के लिए dynamic binding का उपयोग किया जाता है|
- Performance: Overloading overriding की तुलना में बेहतर प्रदर्शन देता है। यही कारण है कि override methods की binding runtime पर की जाती है|
- private और final methods को Overload किया जा सकता है लेकिन उन्हें override नहीं किया जा सकता है। इसका मतलब है कि एक class में एक ही नाम के एक से अधिक private और final methods हो सकते हैं, लेकिन एक child class अपने parent class के private और final methods को override नहीं कर सकता है।
- overloading के मामले में method का return type कोई मायने नहीं रखता हालाँकि method overriding के case में method का return type हो सकता है|
- method overloading करते समय Argument list अलग होनी चाहिए। method overriding में Argument list समान होनी चाहिए।
Method overloading
//A class for adding upto 5 numbers
class Sum
{
int add(int n1, int n2)
{
return n1+n2;
}
int add(int n1, int n2, int n3)
{
return n1+n2+n3;
}
int add(int n1, int n2, int n3, int n4)
{
return n1+n2+n3+n4;
}
int add(int n1, int n2, int n3, int n4, int n5)
{
return n1+n2+n3+n4+n5;
}
public static void main(String args[])
{
Sum obj = new Sum();
System.out.println(“Sum of two numbers: “+obj.add(20, 21));
System.out.println(“Sum of three numbers: “+obj.add(20, 21, 22));
System.out.println(“Sum of four numbers: “+obj.add(20, 21, 22, 23));
System.out.println(“Sum of five numbers: “+obj.add(20, 21, 22, 23, 24));
}
}
परिणाम (Output):
Sum of two numbers: 41
Sum of three numbers: 63
Sum of four numbers: 86
Sum of five numbers: 110
Method Overriding
package beginnersbook.com;
class CarClass
{
public int speedLimit()
{
return 100;
}
}
class Ford extends CarClass
{
public int speedLimit()
{
return 150;
}
public static void main(String args[])
{
CarClass obj = new Ford();
int num= obj.speedLimit();
System.out.println(“Speed Limit is: “+num);
}
}
परिणाम (Output):
Speed Limit is: 150