Professional Documents
Culture Documents
Bharti Sharma
1)
Example ofMethod Overloading by changing the no. of arguments
1. class Calculation{
2. void sum(int a,int b)
3. {
4. System.out.println(a+b);}
CSF203 : Dr. Bharti Sharma
Test it Now
Output:30
40
2) Example of Method Overloading by changing data type of argument
CSF203 : Dr. Bharti Sharma
1. class Calculation2{
2.
3. void sum(int a,int b)
4. {System.out.println(a+b);}
5.
6. void sum(double a,double b){System.out.println(a+b);}
7.
8. public static void main(String args[]){
9. Calculation2 obj=new Calculation2();
10. obj.sum(10.5,10.5);
11. obj.sum(20,20);
12.
13. }
14. }
Test it Now
Output:21.0
40
CSF203 : Dr. Bharti Sharma
Q1
Class add
{
Void sum();
Int sum ();
Float sum ();
}
Sum()
Sum()
Sum()
CSF203 : Dr. Bharti Sharma
Que) Why Method Overloaing is not possible by changing the return type of
method?
In java, method overloading is not possible by changing the return type of the method
because there may occur ambiguity. Let's see how ambiguity may occur:
because there was problem:
1. class Calculation3{
2. int sum(int a,int b)
3. {System.out.println(a+b);}
4.
5. double sum(int a,int b)
6. {System.out.println(a+b);}
7.
8. public static void main(String args[]){
9. Calculation3 obj=new Calculation3();
10. int result=obj.sum(20,20); //Compile Time Error
CSF203 : Dr. Bharti Sharma
11. Obj.sum(20,30)
12.
13. }
14. }
Test it Now
int result=obj.sum(20,20); //Here how can java determine which sum() method should
be called
As displayed in the above diagram, byte can be promoted to short, int, long, float or
double. The short datatype can be promoted to int,long,float or double. The char
datatype can be promoted to int,long,float or double and so on.
CSF203 : Dr. Bharti Sharma
If there are matching type arguments in the method, type promotion is not performed.
1. class OverloadingCalculation2{
2. void sum(int a,int b)
3. {
4. System.out.println("int arg method invoked");}
5. void sum(long a,long b)
6. {System.out.println("long arg method invoked");}
7.
8. public static void main(String args[]){
9.
10. OverloadingCalculation2 obj=new OverloadingCalculation2();
11. obj.sum(20,20);//now int arg sum() method gets invoked
12. }
13. }
Test it Now
Output:int arg method invoked
CSF203 : Dr. Bharti Sharma
If there are no matching type arguments in the method, and each method promotes
similar number of arguments, there will be ambiguity.
1. class OverloadingCalculation3{
2. void sum(int a,long b){System.out.println("a method invoked");}
3. void sum(long a,int b){System.out.println("b method invoked");}
4.
5. public static void main(String args[]){
6. OverloadingCalculation3 obj=new OverloadingCalculation3();
7. obj.sum(20,20);//now ambiguity
8. }
9. }
Test it Now
Output:Compile Time Error
CSF203 : Dr. Bharti Sharma