1. 程式人生 > >Overload&Override

Overload&Override

訪問權限 不同的 新的 嚴格 log 個數 子類 body 異常

Overload&Override

overload—–重載

方法的重載就是在一個類中,可以定義多個有相同名字,但參數不同的方法。調用時,會根據不同的參數表選擇對應的方法。

規 則:兩同三不同
兩 同:同一個類、同一方法名
三 不 同:參數類型、參數個數、參數排列順序不同

註:參數名稱不同、參數返回值不同無法構成方法的重載。如果只有方法參數名稱不同或者方法返回值不同,在你調用方法時你輸入的實參會在參數列表中對應多個方法,無法使編譯器知道你到底調用的是哪個方法。

代碼說明如下:

技術分享圖片

註釋:java中允許任何方法重載,包括構造方法。因此,要完整的描述一個方法,需要指出方法名以及參數類型

,這個叫做方法的簽名(signature)。

Override-----重寫

在子類中根據需要對從父類中繼承來的方法進行修改,這叫做方法的重寫,也稱為方法的覆蓋。重寫方法只能存在於具有繼承的關系中。

註意事項:

(1) 子類不能重寫父類中被關鍵字final修飾的方法(包括private方法,因為private方法是隱式final的)。

(2) 重寫方法必須與被重寫方法具有相同的方法名稱、參數列表和返回值類型。

(3) 重寫方法不能使用比被重寫方法更嚴格的訪問權限(由於多態的存在)。重載可以。

(4) 重寫方法不能拋出新的異常或者比被重寫方法申明更加寬泛的檢查性異常,可以拋出非檢查型異常。如:父類的一個方法申明了一個檢查異常IOException,在重寫這個方法的時候,重寫方法不能拋出Exception,只能拋出IOException或其子類異常,也可以拋出非檢查型異常。重載可以拋出不同的異常。

方法的重載與方法的重寫沒關系!

Overload&Override