剛才看到這樣一個題,下面的解釋很亂,所以還是做一下試驗比較好
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;
}
}