刚才看到这样一个题,下面的解释很乱,所以还是做一下试验比较好
public class Test {
public static void main(String[] args){
Bae b = new Bae();
b.m();
System.out.println(b.m("an", 1));
System.out.println(b.m(1,"an"));
System.out.println(b.m(1,1));
System.out.println(b.m(1));
}
}
class Bae{
public void m(){
System.out.println("参数为:空");
return ;
}
// public int m(){ // 方法签名和上面的一模一样会报错。
// return 10;
// }
public int m(int i){
System.out.println("参数为:int ");
return i;
}
public int m(int a,int b){
System.out.println("参数为:int int");
return a;
}
public String m(String a,int b){
System.out.println("参数为:String int");
return a;
}
// 上下两个overload,参数的顺序不一样,也算不同。不会报错,但是显而易见的是,不推荐这种做法
public int m(int b,String a){
System.out.println("参数为:int String");
return b;
}
}