同一類別中,方法名相同,但參數個數、型別、順序至少一項不同,即構成多載。回傳型別、修飾詞、拋出異常不影響多載判定。
// 1. 參數個數不同
void a() {}
void a(int i) {}
// 2. 參數型別不同
void a(int i) {}
void a(String s) {}
// 3. 參數順序不同
void a(int i, String s) {}
void a(String s, int i) {}
編譯器根據靜態型別(宣告型別)在編譯期決定呼叫哪個多載版本(靜態綁定)。
void a(int... nums) 優先級最低,僅在無固定參數匹配時選用。