java關於函數重載(overload)和函數覆蓋(override)區別

注:轉載請備註原創地址:https://www.niwoxuexi.com/blog/java/article/169.html

重載(Overload):在類中多個同名函數同時存在,具有不同的參數個數/類型。方法名要一樣,但是參數類型和個數不一樣,返回值類型可以相同也可以不相同。

特點:與返回值類型無關,只看參數列表。

優點:方便閱讀,優化設計。

注意:不能有兩個名字相同,參數類型,參數個數也相同卻返回不同類型值的函數。

public class A{
    //show方法被重載
   public void show(){
   }
    //show方法被重載
   public void show(int a){
   }
}

函數覆蓋(override):出現在繼承的關係中,子類中出現了與父類一模一樣的方法時,會有覆蓋操作。

特點:(1)靜態函數只能覆蓋靜態函數;

(2)覆蓋時,子類方法權限一定要大於父類方法權限;

(3)不能拋出新的異常,或者父異常。

應用情景:當子類需要父類功能,而功能主體子類有自己特有功能時,可以複寫父類中的方法,這樣既包括了父類的功能,又定義了子類特有的功能。

public class A{
   public void show(){
      System.out.println("A");
   }
}
public class B extends A{
    //子類B重寫了父類A的show方法
   public void show(){
      System.out.println("B");
   }

發佈了30 篇原創文章 · 獲贊 3 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章