更新時間:2020-07-28 16:25:02 來源:動力節點 瀏覽2387次
方法重寫的原則:
重寫方法的方法名稱、參數列表必須與原方法的相同,返回類型可以相同也可以是原類型的子類型(從Java SE5開始支持)。
重寫方法不能比原方法訪問性差(即訪問權限不允許縮小)。
重寫方法不能比原方法拋出更多的異常。
被重寫的方法不能是final類型,因為final修飾的方法是無法重寫的。
被重寫的方法不能為private,否則在其子類中只是新定義了一個方法,并沒有對其進行重寫。
被重寫的方法不能為static。如果父類中的方法為靜態的,而子類中的方法不是靜態的,但是兩個方法除了這一點外其他都滿足重寫條件,那么會發生編譯錯誤;反之亦然。即使父類和子類中的方法都是靜態的,并且滿足重寫條件,但是仍然不會發生重寫,因為靜態方法是在編譯的時候把靜態方法和類的引用類型進行匹配。
重寫是發生在運行時的,因為編譯期編譯器不知道并且沒辦法確定該去調用哪個方法,JVM會在代碼運行的時候作出決定。
方法重載的原則:
方法名稱必須相同。
參數列表必須不同(個數不同、或類型不同、參數類型排列順序不同等)。
方法的返回類型可以相同也可以不相同。
僅僅返回類型不同不足以成為方法的重載。
重載是發生在編譯時的,因為編譯器可以根據參數的類型來選擇使用哪個方法。
重寫和重載的不同:
方法重寫要求參數列表必須一致,而方法重載要求參數列表必須不一致。
方法重寫要求返回類型必須一致(或為其子類型),方法重載對此沒有要求。
方法重寫只能用于子類重寫父類的方法,方法重載用于同一個類中的所有方法。
方法重寫對方法的訪問權限和拋出的異常有特殊的要求,而方法重載在這方面沒有任何限制。
父類的一個方法只能被子類重寫一次,而一個方法可以在所有的類中可以被重載多次。
重載是編譯時多態,重寫是運行時多態。
以上就是動力節點java培訓機構的小編針對“Java private方法覆蓋和重載是什么意思?”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習