請說明Java中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?

重載:
1、Java中的方法重載發生在同一個類裏面兩個或者是多個方法的方法名相同但是參數不同的情況(例如,參數數量、參數類型、不同的參數順序)。
2、重載不能通過訪問權限、返回值類型和拋出的異常類型來進行重載。

覆蓋(重寫):
1、方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。
2、被覆蓋的父類方法不能是private的,否則子類就直說定義了一個方法,並沒有覆蓋。
由於要滿足里氏替換原則(即使用父類的地方都能使用子類進行替換),所以有以下三條性質
3、方法重寫時,子類的權限修飾符必須要大於或者等於父類的權限修飾符。 (能使用父類方法的地方就要能使用子類方法)
4、方法重寫時,子類的返回值類型必須要小於或者 等於父類的返回值類型。 (子類的返回值必須可以被父類處理)
5、 子類拋出的異常類型要小於或者等於父類拋出的異常類型。 (子類的異常要能被父類處理)

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