适应场景
需要用同一个函数同时兼容多种参数的情况
举例说明
要实现不同类型,不同个数的参数相加怎么办?
public class test {
public static void main(String[] args) {
int a=10;
int b=20;
int ret =add(a,b);
System.out.println("ret="+ret);
double a1=10.5;
double b1=20.5;
double ret1=add(a1,b1);
System.out.println("ret1="+ret1);
double a2=10.5;
double b2=2.9;
double c2=3.4;
double ret2=add(a2,b2,c2);
System.out.println("ret2="+ret2);
}
public static int add(int x,int y){
return x+y;
}
}
显然出现了类型不兼容的情况
使用重载
public class test {
public static void main(String[] args) {
int a=10;
int b=20;
int ret =add(a,b);
System.out.println("ret="+ret);
double a1=10.5;
double b1=20.5;
double ret1=add(a1,b1);
System.out.println("ret1="+ret1);
double a2=10.5;
double b2=2.9;
double c2=3.4;
double ret2=add(a2,b2,c2);
System.out.println("ret2="+ret2);
}
public static int add(int x,int y){
return x+y;
}
public static double add(double x,double y){
return x+y;
}
public static double add(double x,double y,double z){
return x+y+z;
}
}
不同的需求,调用对应的解决方法
像这样,同一个方法名字,提供不同版本的实现,就称为方法重载
重载规则
1、方法名相同
2、方法的参数不同(参数个数或者参数类型)
3、方法的返回值类型不影响重载,即参数一致,返回值不同,不构成重载