1、什麼是方法重寫(overriding)?
(1) 父類別與子類別之間的多型性,重新定義父類別的函數。如果在子類別中定義某方法與其父類別有相同的名稱和參數,我們說該方法被重寫 (Overriding)。在Java中,子類別可繼承父類別中的方法,而不需要重新編寫相同的方法。
但有時子類別不想原封不動地繼承父類別的方法,而是想作一定的修改,這就需要採用方法的重寫。
方法重寫又稱方法覆蓋。
(2)若子類別中的方法與父類別中的某一方法具有相同的方法名稱、傳回型別和參數表,則新方法會覆寫原有的方法。
如需父類別中原有的方法,可使用super關鍵字,該關鍵字引用了目前類別的父類別。
(3)子類別函數的存取修飾權限不能少於父類別的;
以下是重寫的範例:
概念:即呼叫物件方法的機制。
2、重寫方法的規則
1、參數清單必須完全與重寫的方法相同,否則不能稱之為重寫而是重載。
2、傳回的型別必須一直與被重寫的方法的回傳型別相同,否則不能稱之為重寫而是重載。
3、存取修飾符的限制一定大於被重寫方法的存取修飾符(public>protected>default>private)
4、重寫方法一定不能拋出新的檢查異常或比被重寫方法申明更廣泛的檢查型異常。例如:
父類別的一個方法申明了一個檢查異常IOException,在重寫這個方法是就不能拋出Exception,只能拋出IOException的子類別異常,可以拋出非檢查異常。
3、重寫與重載的區別
重寫多態性起作用,對呼叫被重載過的方法可以大幅減少程式碼的輸入量,同一個方法名稱只要往裡面傳遞不同的參數就可以擁有不同的函數或回傳值。
用好重寫和重載可以設計一個結構清晰而簡潔的類,可以說重寫和重載在編寫程式碼過程中的作用非同一般.
以上是為大家做的關於重寫的簡單介紹以及與方法重載的區別,若有錯誤歡迎批評指正。
更多相關內容請造訪PHP中文網:JAVA影片教學
#以上是關於JAVA中方法的重寫詳細講解又與重載有何不同的詳細內容。更多資訊請關注PHP中文網其他相關文章!