
對于初學(xué)者來說,下面的代碼一定十分的熟悉。
public class Test {public static void main(String[] args) {int a = 1;
double b = 1.2;
char c = 'C';
boolean d = true;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}輸出結(jié)果顯而易見

從中我們不難思考一個問題,
a,b,c,d為四個不同類型的參數(shù),為什么System.out.println(參數(shù))都能輸出呢?
查閱 jdk 的文檔可以看出,println()有多種重載的方法

這就省去了我們的許多麻煩,一個方法名只要放入的參數(shù)不同,即可輸出不同的結(jié)果。
3. 注意事項和使用細節(jié)方法重載就是方法名稱重復(fù),加載參數(shù)不同。
1. 方法名必須相同
2. 參數(shù)列表:必須不同。(參數(shù)的類型,個數(shù),順序,至少有一樣不同,參數(shù)名無強制要求)
3. 返回類型:無要求。(可相同,可不同)
首先,關(guān)于第一點
1. 方法名必須相同
public class Test {//方法名都為Sum
//一個是求兩數(shù)之和,一個是求三數(shù)字和
public int Sum(int x, int y) {return x + y;
}
public int Sum(int x, int y, int z) {return x + y + z;
}
public static void main(String[] args) {Test test = new Test();
int sum1 = test.Sum(1,2);//兩數(shù)之和
int sum2 = test.Sum(1,2,3);//三數(shù)之和
System.out.println(sum1);//3
System.out.println(sum2);//6
}
}其次,針對第二點
2. 參數(shù)列表:必須不同。(參數(shù)的類型,個數(shù),順序,至少有一樣不同,參數(shù)名無強制要求)
參數(shù)的類型不同
public class Test {//類型為int 和 int
public double Sum(int x, int y) {return x + y;
}
//類型為int 和 double
public double Sum(int x, double y) {return x + y;
}
//方法名相同,類型不同,構(gòu)成重載
public static void main(String[] args) {Test test = new Test();
double sum1 = test.Sum(1,2);//int int
double sum2 = test.Sum(1,2.1);//int double
System.out.println(sum1);//3.0
System.out.println(sum2);//3.1
}
}參數(shù)的個數(shù)
public class Test {//參數(shù)個數(shù)為 int int 兩個
public int Sum(int x, int y) {return x + y;
}
//參數(shù)為int int int 三個
public int Sum(int x, int y, int z) {return x + y + z;
}
//方法名相同,個數(shù)不同構(gòu)成重載
public static void main(String[] args) {Test test = new Test();
int sum1 = test.Sum(1,2);//兩數(shù)之和
int sum2 = test.Sum(1,2,3);//三數(shù)之和
System.out.println(sum1);//3
System.out.println(sum2);//6
}
}參數(shù)的順序
public class Test {//類型為double int
public double Sum(double x, int y) {return x + y;
}
//類型為int double
public double Sum(int x, double y) {return x + y;
}
//方法名相同,參數(shù)順序不同,構(gòu)成重載
public static void main(String[] args) {Test test = new Test();
double sum1 = test.Sum(1.3,2);//double int
double sum2 = test.Sum(1,2.1);//int double
System.out.println(sum1);//3.3
System.out.println(sum2);//3.1
}
}最后,第三點
3. 返回類型:無要求。(可相同,可不同)

可以看出,僅僅是返回類型不同,編譯器會給出警告?
如果運行就會出現(xiàn)以下報錯
編譯器并不能根據(jù)返回類型的不同,來判斷這兩個方法是否是重載,必須有前兩點中的任意一點。
5. 練習(xí)細節(jié)void A(int a, char b, double c) {}
以下與A 構(gòu)成重載的是?
//不必考慮返回類型
//參數(shù)類型相同
//int char double
//int char double
void A(int x, char y, double z) {}//不是
//參數(shù)類型不同
//int [char] [double]
//int [double] [char]
int A(int a, double c, char b) {}//是
//參數(shù)類型不同
//int [char] [double]
//int [double] [char]
void A(int a, double c, char b) {}//是
//參數(shù)類型不同和個數(shù)不同
//int char [double]
//int [char] [?]
boolean A(int c, char b) {}//是
//參數(shù)類型不同和個數(shù)不同
//[int] [char] [double]
//[double] [?] [?]
void A(double c) {}//是
//參數(shù)類型想同
//int char double
//int char double
double A(int x, char y, double z) {}/不是
//方法名不同 A AA
void AA() {}//不是尾言夢想永在凌云意,意氣風(fēng)發(fā)。 代碼筑就萬世基,積沙鎮(zhèn)海。
諸君加油(? ?_?)?

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享題目:【Java中的方法重載(Overload)-創(chuàng)新互聯(lián)
文章起源:http://chinadenli.net/article26/eohjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、域名注冊、網(wǎng)站設(shè)計公司、微信公眾號、響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)