過載與重寫

2021-10-22 03:16:26 字數 670 閱讀 5593

過載

同乙個類中的多個方法具有相同的名字,但這些方法具有不同的引數列表

重寫

存在子父類之間的,子類定義的方法與父類中的方法具有相同的方法名字,相同的參數列和相同的返回型別

注:(1)子類中不能重寫父類中的final方法

(2)子類中必須重寫父類中的abstract方法

方法重寫又稱方法覆蓋。

若子類中的方法與父類中的某一方法具有相同的方法名、返回型別和參數列,則新方法將覆蓋原有的方法。

如需父類中原有的方法,可使用super關鍵字,該關鍵字引用了當前類的父類。

子類函式的訪問修飾許可權不能少於父類的

面試題:過載(overload)和重寫(override)的區別。過載的方法能否根據返回型別進行區分?

答:方法的過載和重寫都是實現多型的方式,區別在於前者實現的是編譯時的多型性,而後者實現的是執行時的多型性。

過載發生在乙個類中,同名的方法如果有不同的引數列表(引數型別不同、引數個數不同或者二者都不同)則視為過載;

重寫發生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的引數列表,有相容的返回型別,比父類被重寫方法更好訪問,不能比父類被重寫方法宣告更多的異常(黎克特制代換原則)。

過載對返回型別沒有特殊的要求,不能根據返回型別進行區分。

重寫與過載

override 為覆蓋又叫重寫,從字面就可以知道,它是覆蓋了乙個方法並且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對介面方法的實現,在介面中一般只是對方法進行了宣告,而我們在實現時,就需要實現介面宣告的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆...

過載與重寫

過載與重寫 面對過載與重寫有時會像失憶一樣,將這兩個內容搞混。在實際運用中,我們一般是不會混的。但在給別人講述的過程中,可能會出現張冠李戴將兩個名詞搞混,這是不利於傳播的。讓我們來一起加深一下 過載 相同函式名稱,不同引數或不同引數型別。舉個例子 class oneclass public doub...

重寫與過載

重寫方法的規則 1.引數列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是過載.2.返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載.3.訪問修飾符的限制一定要大於被重寫方法的訪問修飾符 public protected default private 4.重寫方法一...