方法重载
重载的方法,实际是完全不同的方法,只要是名称相同罢了。
构成方法重载的条件:
1.不同含义:形参类型—形参个数—形参顺序不同。
2.只有返回值不同不构成方法的重载
列如:int a(String str){} 与 void a(String str){}
不构成方法重载:
3.只有形参的名称不同,不构成方法的重载
列如:int a(String str){} 与 int a(String s){}
所有说想要重载一个方法,形参不同就可以构成方法的重载,通过以下案例。
案例1:构成重载的
public class chongz {
public static void main(String[] args) {
System.out.println(a(1,9));//10
System.out.println(a(1,2,6));//9
System.out.println(a(3.5,9));//12.5
System.out.println(a(1,5.0));//6.0
}
/**
* 求和方法
*/
public static int a(int n1,int n2) {
int sum =n1+n2;
return sum;
}
//方法名相同,参数个数不同,构成方法重载
public static int a(int n1,int n2,int n3) {
int sum =n1+n2+n3;
return sum;
}
//方法名相同,参数类型不同,构成方法重载
public static double a(double n1,int n2) {
double sum =n1+n2;
return sum;
}
//方法名相同,参数顺序不同,构成方法重载
public static double a(int n1,double n2) {
double sum =n1+n2;
return sum;
}
}
案例2:不构成重载
public class chongz {
public static void main(String[] args) {
System.out.println(a(1,9));//10
System.out.println(a(1,2,6));//9
System.out.println(a(3.5,9));//12.5
System.out.println(a(1,5.0));//6.0
}
/**
* 求和方法
*/
public static int a(int n1,int n2) {
int sum =n1+n2;
return sum;
}
//编译错误:只有返回值不同,不构成方法重载
public static double a(int n1,int n2) {
int sum =n1+n2;
return sum;
}
//编译错误:只有参数名称不同,不构成方法重载
public static int a(int n2,int n1) {
double sum =n1+n2;
return sum;
}
}
代码执行出现报错,因为执行System.out.println(a(1,9))调用的时候不知道调用下面那个方法。