If a class has multiple methods having same name but different in parameters, it is
known as Method Overloading.
If we have to perform only one operation, having same name of the
methods increases the readability of the program.
Suppose you have to perform addition of the given numbers but there can be any
number of arguments, if you write the method such as a(int,int) for two parameters,
and b(int,int,int) for three parameters then it may be difficult for you as well as
other programmers to understand the behavior of the method because its name
differs.
So, we perform method overloading to figure out the program quickly.
Advantage of method overloading
Method overloading increases the readability of the program.
Different ways to overload the method
There are two ways to overload the method in java
1. By changing number of arguments
2. By changing the data type
In java, Method Overloading is not possible by changing the return type of
the method only.
public class TypePromotion {
void sum(int a, int b) {
System.out.println("int arg method invoked");
}
void sum(long a, long b) {
System.out.println("long arg method invoked");
}
public static void main(String args[]) {
TypePromotion obj = new TypePromotion();
obj.sum(20, 20);// now int arg sum() method gets invoked
obj.sum(20L, 20L);// now long arg sum() method gets invoked
}
}
public class TypePromotion {
void sum(int a, long b) {
System.out.println("a method invoked");
}
void sum(long a, int b) {
System.out.println("b method invoked");
}
public static void main(String args[]) {
TypePromotion obj = new TypePromotion();
obj.sum(20, 20);// now ambiguity
obj.sum(20l, 20); // its working
}
}