重載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中的靜態方法】