實質
方法的重載是在同一個類中,方法與方法之間的關系碟婆。重載其實就是在類中重用方法名惕稻。java平臺靠方法簽名來區(qū)分不同的方法;方法簽名相同的方法無法同時存在于同一個類中(即使它們的訪問修飾符公给、返回值類型不同锻煌,因為方法簽名與這些無關)。
方法重載是指在一個類中定義多個同名的方法匣沼,但要求每個方法具有不同的參數的類型或參數的個數捂龄。調用重載方法時,Java編譯器能通過檢查調用的方法的參數類型和個數選擇一個恰當的方法。方法重載通常用于創(chuàng)建完成一組任務相似但參數的類型或參數的個數不同的方法窖认。
方法重載是讓類以統(tǒng)一的方式處理不同類型數據的一種手段。Java的方法重載烧给,就是在類中可以創(chuàng)建多個方法喝噪,它們可以有相同的名字,但必須具有不同的參數榴鼎,即或者是參數的個數不同,或者是參數的類型不同巫财。調用方法時通過傳遞給它們的不同個數和類型的參數來決定具體使用哪個方法。
方法簽名
方法簽名由兩部分組成:
- 方法名
- 方法的參數類型(包括數據類型翁涤、個數萌踱、順序等)
重載的含義
類中的兩個或多個方法并鸵,若它們有相同的方法名扔涧,但有不同的方法簽名,那么這幾個方法就是重載的弯汰。
方法重載的具體規(guī)范
- 方法名一定要相同湖雹。
- 方法的參數表必須不同,包括參數的類型或個數鸽嫂,以此區(qū)分不同的方法體征讲。
- 如果參數個數不同,就不管它的參數類型了诗箍!
- 如果參數個數相同,那么參數的類型必須不同筷狼。
3. 方法的返回類型、修飾符可以相同棘劣,也可不同楞遏。
示例代碼
public class MethodOverloading {
void receive(int i) {
System.out.println("Received one int data");
System.out.println("i="+i);
}
void receive(float f) {
System.out.println("Received one float data");
System.out.println("f="+f);
}
void receive(String s) {
System.out.println("Received a String");
System.out.println("s="+s);
}
public static void main(String [] args){
MethodOverloading m = new MethodOverloading();
m.receive(3456);
m.receive(34.56f);
m.receive("方法重載");
}
}
應用時應該注意寡喝,方法重載只跟方法名(相同)和參數表(不同)有關。與訪問修飾符巧骚、返回值格二、形參名等無關。