Java中的函式過載
函式過載(Function Overloading)是物件導向程式設計中的一個概念,它允許在同一個類中定義多個同名函式,但這些函式的引數列表必須不同。引數列表的不同可以體現在引數的型別、數量或順序上。函式過載使得程式設計更加靈活,可以針對不同的引數型別或數量提供不同的函式實現。
Java支援函式過載,下面是一個簡單的例子:
public class OverloadExample {
// 第一個版本的print方法,接受一個整數引數
public void print(int a) {
System.out.println("Integer: " + a);
}
// 第二個版本的print方法,接受一個雙精度浮點數引數
public void print(double a) {
System.out.println("Double: " + a);
}
// 第三個版本的print方法,接受一個字串引數
public void print(String a) {
System.out.println("String: " + a);
}
// 測試函式過載
public static void main(String[] args) {
OverloadExample example = new OverloadExample();
example.print(10); // 呼叫第一個版本的print方法
example.print(20.5); // 呼叫第二個版本的print方法
example.print("Hello"); // 呼叫第三個版本的print方法
}
}
在這個例子中,OverloadExample
類有三個名為 print
的方法,但它們接受不同型別的引數:一個接受 int
型別,一個接受 double
型別,另一個接受 String
型別。當我們在 main
方法中呼叫 print
方法時,編譯器會根據提供的引數型別來決定呼叫哪個版本的 print
方法。
函式過載是編譯時多型的一個例子,也稱為靜態多型或前繫結,因為在編譯時就已經確定了呼叫哪個函式。與之相對的是執行時多型(動態多型或後繫結),它主要透過方法的動態繫結實現,常見於方法的繼承和介面實現中。