1. 程式人生 > 其它 >java的重寫(override)與過載(overload)

java的重寫(override)與過載(overload)

1 方法重寫

1.1 方法重寫的概念

子類繼承了父類,子類就得到了父類的某個方法。但是子類覺得父類的這個方法不好用或者無法滿足自己的需求。子類重寫一個與父類申明一樣的方法來覆蓋父類的該方法,子類的這個方法就進行了方法重寫。宣告不變,重新實現

1.2 方法重寫的校驗註解:@Override

Java建議在重寫的方法上面加上一個@Override註解,@Override優勢:可讀性好,安全,優雅!!

這個註解標記的方法,就說明這個方法必須是重寫父類的方法,否則編譯階段報錯。

1.3 方法重寫的具體要求

  1. 子類重寫方法的名稱和形參列表必須與父類被重寫方法一樣
  2. 子類重寫方法的返回值型別申明要麼與父類一樣,要麼比父類方法返回值類型範圍更小
  3. 子類重寫方法的修飾符許可權應該與父類被重寫方法的修飾符許可權相同或者更大
  4. 子類重寫方法申明丟擲的異常應該與父類被重寫方法申明丟擲的異常一樣或者範圍更小

1.4 方法重寫的規範

  • 加上@Override註解。
  • 建議“申明不變,重新實現”

1.5 注意事項

  • 被重寫後的方法是無法通過子類物件在外部呼叫的
  • 可以使用super.方法名()在子類的例項方法中呼叫父類被重寫的方法
  • 靜態方法和私有方法不能被重寫

2 方法過載

2.1 方法過載的概念

過載(overloading) 是在一個類裡面,方法名字相同,而引數不同。返回型別可以相同也可以不同。每個過載的方法(或者建構函式)都必須有一個獨一無二的引數型別列表。

最常用的地方就是構造器的過載

2.2 方法過載的具體要求

  • 被過載的方法必須改變引數列表(引數個數或型別不一樣);
  • 被過載的方法可以改變返回型別;
  • 被過載的方法可以改變訪問修飾符;
  • 被過載的方法可以宣告新的或更廣的檢查異常;
  • 方法能夠在同一個類中或者在一個子類中被過載。
  • 無法以返回值型別作為過載函式的區分標準。