重載和重寫

重載和重寫的差異


  1. 方法重載是指在同一個類中,有多個方法名相同的參數列表不一樣的方法
  2. 方法重寫是指在繼承關係中,子類有和父類方法名相同的、參數列表相同而且返回值類型也相同的方法
    • 子類中不能重寫父類中的final方法 
    • 子類中必須重寫父類中的abstract方法 

重載(Overloading)


 

  1. 方法重載是讓類以統一的方式處理不一樣類型數據的一種手段。多個同名函數同時存在,具備不一樣的參數個數/類型。重載Overloading是一個類中多態性的一種表現。
  2. Java的方法重載,就是在類中能夠建立多個方法,它們具備相同的名字,但具備不一樣的參數和不一樣的定義。調用方法時經過傳遞給它們的不一樣參數個數和參數類型來決定具體使用哪一個方法, 這就是多態性。ide

  3. 重載的時候,方法名要同樣,可是參數類型和個數不同,返回值類型能夠相同也能夠不相同。沒法以返回型別做爲重載函數的區分標準。

重寫(Overriding


 

  1. 若是在子類中定義某方法與其父類有相同的名稱和參數,咱們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不須要從新編寫相同的方法。但有時子類想做必定的修改,這就須要採用方法的重寫。方法重寫又稱方法覆蓋。
  2. 若子類中的方法與父類中的某一方法具備相同的方法名、返回類型和參數表,則新方法將覆蓋原有的方法。如需父類中原有的方法,可以使用super關鍵字,該關鍵字引用了當前類的父類。函數

  3. 訪問修飾符的限制必定要大於被重寫方法的訪問修飾符(public>protected>default>private)
  4. 重寫方法必定不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。

 

 總結


 

override(重寫)spa

  1. 方法名、參數、返回值相同。
  2. 子類方法不能縮小父類方法的訪問權限。
  3. 子類方法不能拋出比父類方法更多的異常(但子類方法能夠不拋出異常)。
  4. 存在於父類和子類之間。
  5. 方法被定義爲final不能被重寫。

 

 overload(重載)繼承

  1. 參數類型、個數、順序至少有一個不相同。 
  2. 不能重載只有返回值不一樣的方法名。
  3. 存在於父類和子類、同類中。

 

 

 2018-03-12權限

若是有哪裏不對的懇請指正引用

相關文章
相關標籤/搜索