Java_方法的重载
1.方法的重载:多个方法的名称一样,但是参数列表不一样
public class test{
public static void main(String[] args){
System.out.println(sum(10, 20));//30
System.out.println(sum(10, 20, 30));//60
System.out.println(sum(10, 20, 30, 40));//100
}
public static int sum(int a,int b){
return a+b;
}
public static int sum(int a,int b,int c){
return a+b+c;
}
public static int sum(int a,int b,int c,int d){
return a+b+c+d;
}
}
2.方法重载与下列因素相关
(1)参数个数不同
(2)参数类型不同
(3)参数的多类型顺序不同
public class test{
public static void main(String[] args){
System.out.println(sum(2.3, 3.6)); //5
System.out.println(sum(2.3, 4)); //6
System.out.println(sum(4, 5.6)); //9
}
public static int sum(double a,double b){
return (int)(a+b);
}
public static int sum(int a,double b){
return (int)(a+b);
}
public static int sum(double a,int b){
return (int)(a+b);
}
}
3.方法重载与以下因素无关
(1)与方法的返回值类型无关
(2)与参数的名称无关
4.方法重载练习
(1)比较两个数据是否相等
public class test{
public static void main(String[] args){
byte a=10;
byte b=50;
System.out.println(isSame(a, b)); //执行byte类型
System.out.println(isSame(20, 20)); //执行int类型
System.out.println(isSame((short)a, (short)b)); //执行short类型
System.out.println(isSame(10L, 20L)); //执行long类型
}
//byte类型
public static boolean isSame(byte a,byte b){
System.out.println("执行byte类型");
boolean same;
if(a==b){
same=true;
}else{
same=false;
}
return same;
}
//int类型
public static boolean isSame(int a,int b){
System.out.println("执行int类型");
boolean same=a==b?true:false;
return same;
}
//short类型
public static boolean isSame(short a,short b){
System.out.println("执行short类型");
boolean same=a==b;
return same;
}
//long类型
public static boolean isSame(long a,long b){
System.out.println("执行long类型");
return a==b;
}
}