Java重載(overload)和重寫(override)

重載overload

針對:類中已有的方法

重載條件:

相同的方法名,不同的參數列表【不同的參數列表包括參數的類型,參數的順序】

不構成重載:

不同的訪問權限

不同的返回值

拋出異常

不同的異常個數

使用泛型作爲參數,由於泛型會在編譯時進行類型擦除,泛型有時會被認爲是相同的參數列表。如List<String> 和List<Integer>擦除後均是List<Object>


重寫override

針對:類中繼承自父類的方法

重寫條件:

不小於父類的訪問權限

相同的返回值

相同的方法名稱

相同的參數列表

不構成重寫:

拋出異常

不同的異常個數

試圖重寫父類final方法【final方法無法被重寫,子類中不能存在同名方法】

試圖重寫父類static方法【static方法屬於類方法,類被JVM加載的時候就處於可調用狀態,與實際對象無關,只有調用的對象類型有關係,如A extends B,A、B均有同名靜態方法staticMethod(),B b = new A(),b.staticMethod();運行的是B中的靜態方法,而非A中的靜態方法】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章