在本文中,您將了解方法重載以及如何借助示例在Java中實(shí)現(xiàn)重載。
在Java中,如果兩個或多個方法的參數(shù)不同(不同數(shù)量的參數(shù),不同類型的參數(shù)或兩者都不同),則它們可以具有相同的名稱。這些方法稱為重載方法,此功能稱為方法重載。例如:
void func() { ... }
void func(int a) { ... }
float func(double a) { ... }
float func(int a, float b) { ... }在這里,func()方法是重載的。這些方法具有相同的名稱,但是接受不同的參數(shù)。
請注意,這些方法的返回類型不同。 重載方法可以具有不同的返回類型,也可以不具有不同的返回類型,但它們接受的參數(shù)必須不同。
假設(shè)您必須執(zhí)行給定數(shù)字的加法運(yùn)算,但是可以有任意數(shù)量的參數(shù)(為簡單起見,可以說2個或3個參數(shù))。
為了完成任務(wù),可以分別為兩個和三個參數(shù)創(chuàng)建兩個方法sum2num(int,int)和sum3num(int,int,int)。但是,其他程序員以及您將來可能會感到困惑,因?yàn)檫@兩種方法的行為相同,但名稱不同。
完成此任務(wù)的更好方法是重載方法。并且,根據(jù)傳遞的參數(shù),調(diào)用其中一個重載方法。這有助于提高程序的可讀性。
以下是執(zhí)行方法重載的不同方法:
class MethodOverloading {
private static void display(int a){
System.out.println("參數(shù): " + a);
}
private static void display(int a, int b){
System.out.println("參數(shù): " + a + " 和 " + b);
}
public static void main(String[] args) {
display(1);
display(1, 4);
}
}輸出:
參數(shù): 1 參數(shù): 1 和 4
class MethodOverloading {
//此方法接受int
private static void display(int a){
System.out.println("得到了整數(shù)數(shù)據(jù).");
}
//此方法接受String對象
private static void display(String a){
System.out.println("得到了String對象。");
}
public static void main(String[] args) {
display(1);
display("Hello");
}
}輸出:
得到了整數(shù)數(shù)據(jù) 得到了String對象。
在這里,兩個重載方法都接受一個參數(shù)。但是,一個接受int類型的參數(shù),而另一個接受String對象。
class HelperService {
private String formatNumber(int value) {
return String.format("%d", value);
}
private String formatNumber(double value) {
return String.format("%.3f", value);
}
private String formatNumber(String value) {
return String.format("%.2f", Double.parseDouble(value));
}
public static void main(String[] args) {
HelperService hs = new HelperService();
System.out.println(hs.formatNumber(500));
System.out.println(hs.formatNumber(89.9934));
System.out.println(hs.formatNumber("550"));
}
}運(yùn)行該程序時,輸出為:
500 89.993 550.00
注意:在Java中,您還可以用類似于方法的方式重載構(gòu)造函數(shù)。
推薦相關(guān): Java構(gòu)造函數(shù)重載
如果兩個或多個方法接受不同的參數(shù),則它們在同一個類中可以具有相同的名稱。 此功能稱為方法重載。
方法重載可以通過以下任一方式實(shí)現(xiàn):
更改參數(shù)數(shù)量。
或更改參數(shù)的數(shù)據(jù)類型。
不能通過只更改方法的返回類型來實(shí)現(xiàn)方法重載。