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