雷区
重载的方法,实际是完全不同的方法,只是名称相同而已!
构成方法重载的条件:
1.不同的含义:形参类型、形参个数、形参顺序不同
2.只有返回值不同不构成方法的重载
如:
int a(String str){}与 void a(String str){}
不构成方法重载
3.只有形参的名称不同,不构成方法的重载
如:
int a(String str){}与int a(String s){}
【示例】
public class TestOverload {
public static void main (String[] args) {
System.out.println(add(3, 5)); //8
System.out.println(add(3, 5, 10));//18
System.out.println(add(3.0, 5)); //8.0
System.out.println(add(3, 5.0)); //8.0
}
/**求和的方法*/
public static int add(int n1, int n2) {
int sum = n1+n2;
return sum;
}
//编译错误:只有返回值不同,不构成方法的重载
public static double add(int n1, int n2) {
double sum = n1+n2;
return sum;
}
//编译错误:只有参数名称不同,不构成方法的重载
public static int add(int n2, int n1) {
double sum = n1 + n2;
return sum;
}
}
网友评论