方法重載
方法重載(Overload)是指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數的類型或參數的個數。調用重載方法時,Java編譯器能通過檢查調用的方法的參數類型和個數選擇一個恰當的方法。方法重載通常用於創建完成一組任務相似但參數的類型或參數的個數或參數的順序不同的方法。
Java的方法重載,就是在類中可以創建多個方法,它們可以有相同的名字,但必須具有不同的參數,即或者是參數的個數不同,或者是參數的類型不同。調用方法時通過傳遞給它們的不同個數和類型的參數,以及傳入參數的順序來決定具體使用哪個方法。
方法重載
方法重載就是方法名稱重複,加載參數不同。
在一個Java類中,定義多個同名的方法,如果方法名相同,方法參數不同,包括參數的類型和個數都不同,叫做方法的重載。
調用重載方法時,Java 編譯器通過檢查調用的方法的參數類型和個數選擇一個恰當的方法。方法重載常用於創建完成一組任務相似但參數的類型或參數的個數或參數的順序不同的方法。
方法的重載
,既可以發生
在普通方法
上,也可以發生在構造方法上
。方法的重載,既可以發生在同類中,也可以發生在父子類中。
Java方法的重載:返回類型、修飾符可以相同,也可不同
。要求同名的方法必須有不同的參數表,僅有返回類型不同是不足以區分兩個重載的方法。
public class MethodOverloading{
public void show(String str){
... ...
}
public void show(int i){
... ...
}
public void show(double d){
... ...
}
public void show(int i,double d){
... ...
}
}
public class TestDemo {
public static void main(String[] args) {
//此時將根據參數的類型和個數的不同執行不同的方法體
System.out.println(add(10, 20));
System.out.println(add(30, 40, 50));
System.out.println(add(1.1, 2.1));
}
public static int add(int x, int y) {
return x + y;
}
//此時方法名稱相同,參數的個數不同
public static int add(int x, int y, int z) {
return x + y + z;
}
public static double add(double x, double y) {
return x + y;
}
}
方法重寫
方法覆蓋
一般指方法重寫
在Java和其他一些高級面向對象的編程語言中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。方法重寫又稱方法覆蓋
方法重寫概念
1.方法的重寫是指兩個方法的返回值、方法名、參數的類型和個數相同(子類重寫父類的方法)。
2.方法的重寫,不能發生在同類中,只能發生在子類中。
若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數表,則新方法將覆蓋原有的方法。 如需父類中原有的方法,可使用super關鍵字,
該關鍵字引用了當前類的父類。
3.方法重寫的權限:子類中的權限大於或等於父類的權限,(修飾符高低:private < 默認修飾符<protected < public)
4.特殊情況:子類不能重寫父類被聲明爲private權限的方法
方法重寫與方法重載區別
1. 方法的重載(Overload)是方法的參數個數或類型不同,方法名相同。
2. 方法重寫(override)是要注意權限的問題,子類中的權限不能小於父類的權限,
當父類的權限爲private時,子類無法繼承。也就無法產生所謂的重寫。
(修飾符高低:private < 默認修飾符 < public)
3.重寫也叫覆蓋