對同乙個類中的多個方法(包括從父類中繼承的方法), 如果有兩個方法的方法名相同,但引數列表不同,那麼可以說,乙個方法是另乙個方法的過載方法。這種現象叫過載。
方法過載特點與返回值型別無關,只看方法名和引數列表
在呼叫時,虛擬機器通過引數列表的不同來區分同名方法
過載必須滿足以下條件:
1) 方法名稱相同。
2) 引數列表不同(引數型別、個數和順序)。
注意: 返回型別可以不相同。
定義:子類中出現了和父類中一樣的方法宣告,也被稱為方法覆蓋。
——使用特點
如果方法名不同,就呼叫對應的方法;
如果方法名相同,最終使用的是子類自己的;
——方法重寫的應用
方法覆蓋只存在於子類和父類(包括直接父類和間接父類)之間。在同乙個類中方法只能被過載,不能被覆蓋,即當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內容。
——方法重寫的注意事項
父類中私有方法不能被重寫;
子類重寫父類方法時,訪問許可權不能更低;
父類靜態方法,子類也必須通過靜態方法進行重寫。
靜態方法:不能覆蓋。
a. 父類的靜態方法不能被子類覆蓋為非靜態方法//編譯出錯
b. 子類可以定義與父類的靜態方法同名的靜態方法(但不是覆蓋)
例如:a類繼承b類 a和b中都乙個相同的靜態方法test
b a = new a();
a.test();//呼叫到的時候b類中的靜態方法test
a a = new a();
a.test();//呼叫到的時候a類中的靜態方法test
可以看出靜態方法的呼叫只和變數宣告的型別相關
這個和非靜態方法的重寫之後的效果完全不同
c. 父類的非靜態方法不能被子類覆蓋為靜態方法;//編譯出錯
私有方法: 不能被子類覆蓋
Java基礎 方法的過載和覆蓋
override可以翻譯為覆蓋,有時也叫重寫,從字面就可以知道,它是覆蓋了乙個方法並且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對介面方法的實現。overload overloading 對我們來說可能比較熟悉,可以翻譯為過載,它是指我們可以定義一些名稱相同的方法,通過定義不同的輸入引...
java 方法覆蓋 方法過載和多型
1 方法覆蓋 override 即方法重寫,對父類的方法進行重寫,要求子類和父類的方法名和入參個數和型別必須一致。public class parent public class children extends parent 2 方法過載 overload 乙個類中可以存在多個重名的方法,但是要求...
Java中的方法過載和重寫(覆蓋)
一.方法過載 overload 方法過載的判定 同一類中,方法名相同,引數列表不同 引數個數不同,引數列表中對應位置引數型別不同 其他方法返回值 和訪問修飾符都隨意。public class overloadtest the first situation the number of param t...