Java 教程《語法說明》Overloading a Method
■ Overloading a Method
[method-modifiers] returnType methodName( [parameterList] ) {
....
}
[method-modifiers] returnType methodName( [parameterList] ) {
....
}
[說明]
1. 當 Java 呼叫某個 method 時,根據以下情況決定該執行哪一個 method:
A) instance 所在的類別
B) method 的名稱
C) 傳給 method 的參數型態與個數
因此如果同一個 class 內有兩個以上的 methods 有相同的方法名稱(可經由宣告或繼承而產生),但是有不同的 signature,稱此種情況為覆載。
[註] signature 由 method 名稱、formal parameters的個數和資料型態所組成。不包括 methods 的傳回型態。
2. Java 並不比較 method 的傳回型態來決定要呼叫哪個 method。因此並不允許 methods 間有相同參數列狀況、而只有傳回值型態不同的情況發生。
[範例]
class MyOverloadClass {
public void myMethod(int a, int b) {
System.out.println("參數a:" + a + " 參數b:"+b);
}
public void myMethod(int a) {
System.out.println("參數a:" + a);
}
}
class Demo {
public static void main (String[ ] args) {
MyOverloadClass myObj = new MyOverloadClass( );
myObj.myMethod(50, 100);
myObj.myMethod(66);
}
}