重寫 覆蓋 過載 多型的區別

2021-08-18 10:12:12 字數 896 閱讀 6985

override->重寫(=覆蓋)、overload->過載、polymorphism -> 多型

override是重寫(覆蓋)了乙個方法,以實現不同的功能。一般是用於子類在繼承父類時,重寫(重新實現)父類中的方法。

重寫(覆蓋)的規則:

1、重寫方法的引數列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是過載.

2、重寫方法的訪問修飾符一定要大於被重寫方法的訪問修飾符(public>protected>default>private)。

3、重寫的方法的返回值必須和被重寫的方法的返回一致;

4、重寫的方法所丟擲的異常必須和被重寫方法的所丟擲的異常一致,或者是其子類;

5、被重寫的方法不能為private,否則在其子類中只是新定義了乙個方法,並沒有對其進行重寫。

6、靜態方法不能被重寫為非靜態的方法(會編譯出錯)。

7、靜態方法屬於類,是不能被重寫,故而也不能實現多型。

overload是過載,一般是用於在乙個類內實現若干過載的方法,這些方法的名稱相同而引數形式不同。

過載的規則:

1、在使用過載時只能通過相同的方法名、不同的引數形式實現。可以是不同的引數型別,不同的引數個數,不同的引數順序(引數型別必須不一樣);

2、不能通過訪問許可權、返回型別、丟擲的異常進行過載;

3、方法的異常型別和數目不會對過載造成影響;

polymorphism是多型

多型是建立在重寫的基礎之上的,是類與類之間的關係,是發生在不同的類之間的,子類重寫父類的方法。實現不同的子類,不同的實現形態。

多型有3個條件

1:繼承

2:重寫(重寫父類繼承的方法)

3:父類引用指向子類物件(父類  物件名= new 子類();語句在堆記憶體中開闢了子類的物件,並把棧記憶體中的父類的引用指向了這個子類物件。)

覆蓋,重寫,過載,隱藏,多型的區別

簡單解析一下oop程式設計中常常讓人困惑的幾個名詞。覆蓋,重寫,過載,隱藏,多型 首先,覆蓋也稱重寫,英文override 特點 1.指不同作用域中 派生類和基類 同名函式的定義 2.函式名 引數均完全相同 3.基類對應方法前有 virtual,即被宣告為虛函式 作用 基類指標和引用在呼叫對應方法時...

覆蓋,重寫,過載,隱藏,多型的區別

簡單解析一下oop程式設計中常常讓人困惑的幾個名詞。覆蓋,重寫,過載,隱藏,多型 首先,覆蓋也稱重寫,英文override 特點 1.指不同作用域中 派生類和基類 同名函式的定義 2.函式名 引數均完全相同 3.基類對應方法前有 virtual,即被宣告為虛函式 作用 基類指標和引用在呼叫對應方法時...

重寫 覆蓋 過載 多型

這篇部落格很亂,關於過載 隱藏 覆蓋的相關知識,看另一篇部落格 參考部落格 其實多型和過載不是乙個層次上的問題,重寫 覆蓋 過載 隱藏常放在一起討論,多型是重寫 覆蓋 下的一種特殊情況,即基類的函式被virtual修飾了。1 多型和過載的區別 多型是基於對抽象方法的覆蓋來實現的,用統一的對外介面來完...