國立屏東大學 資訊工程學系 物件導向程式設計
Overloading(多載),指得是在一個類別中,定義多個「名稱相同」但「引數個數不同」或是「引數型態不同」的method。Java語言可以依據所傳入的參數來判斷,使用者所要呼叫的是哪一個版本。請參考下面的例子:
class NumberBox { int value; NumberBox() { value = 0; } int addIntValue(int a) { return value+=a; } int addFloatValue(float a) { return value+=((int)a); } int addDoubleValue(double a) { return value+=((int)a); } int addCharValue(char a) { return value+=((int)a); } }
class NumberBox { int value; NumberBox() { value = 0; } int addValue(int a) { return value+=a; } int addValue(float a) { return value+=((int)a); } int addValue(double a) { return value+=((int)a); } int addValue(char a) { return value+=((int)a); } }
如此一來,當需要增加數值時,只需呼叫addValue()即可,它可以視所傳入的資料之型態的參異,自行判斷找到適當的「版本」來加以執行,這就叫做「Overloading(多載)」。
現在讓我們在將注意力放回到STUScoreMan專案上,我們來增加一門課程可以管理其修課學生的成績這項需求。