方法重载 Overload:
在同一类中允许:
①方法名相同
②参数列表不同(参数的个数,参数的类型)
注意:与返回值类型无关
System.out.println方法就是典型的重载方法
方法中可以调用其他方法
方便记忆,便于调用
class MethodTest4
{
public static void main(String[] args)
{ int result=add(10,20);
//double result=add(10.5,20.5);
System.out.println(result);
add("abc",true);
}
//需求:计算二个整数的和
public static int add(int a,int b){
System.out.println("计算二个整数的和");
return a+b;
}
//需求:计算三个整数的和
public static int add/*3Int*/(int a,int b,int c){
return a+b+c;
}
//...
//需求:计算二个浮点数的和
public static double add(double i,double j){
System.out.println("计算二个浮点数的和");
return i+j;
}
//参数类型不同
public static void add(String str,boolean boo){
System.out.println(str+boo);
}
public static int add(boolean boo,String str){
System.out.println(boo+str);
return 0;
}
}
例:
定义三个重载方法max0,第一个方法求两个int值中的最大值,
第二个方法求两个double值中的最大值,第三个方法求三个
double值中的最大值,并分别调用三个方法。
class MethodExer4
{
public static void main(String[] args)
{
int res= max(10,20);
System.out.println(res);
double res2= max(10.1,20.3);
System.out.println(res2);
double res3= max(10.5,20.6,30.7);
System.out.println(res3);
}
public static int max(int a,int b){
return a>b?a:b;
}
public static double max(double a,double b){
return a>b?a:b;
}
public static double max(double i,double j,double k){
/*double m=i>j ? i:j;
m=m>k ? m:k;
return m;*/
//方法中可以调用其他方法
double m=max(i,j);
m=max(m,k);
return m;
}
}