多型和介面 C

2021-08-21 22:06:35 字數 1202 閱讀 2327

(一)多型

1.是什麼

多型就是物件可以表現對各型別的能力。

2.有什麼

①子類和父類的關係

子類和父類方法名相同解決方案:

一:在子類方法修飾符後面加new

二:在父類的方法修飾符後面加上virtual

在子類中重寫父類的方法,加上乙個override.

呼叫父類的方法,但是把父類的方法進行了重寫,更換了裡面的內容

②多型-抽象類

/抽象方法是用abstract修飾

//抽象方法沒有方法體

//抽象方法必須在抽象類中

//抽象類可以有非抽象成員

//抽象類只能最為基類,無法例項化

//父類是抽象類,子類繼承了這個類,必須 把抽象類中所有的抽象方法重寫

③建立多型的幾種方式:父類、抽象類、介面實現多型

④虛方法和抽象方法的對比

用virtual修飾的方法叫做虛方法

虛方法可以在子類中通過override關鍵字來重寫,常見的虛方法:tostring()equals

版本控制:需要保留基類方法是用new關鍵字;需要重寫方法時使用override關鍵字

(二)介面

1.是什麼

①介面就是完全抽象的一種約定,是用來實現的。只有方法、屬性、索引、事件的宣告。

②關鍵字:iinte***ce,名稱通常以i開頭。

2.介面和類的比較

①如果乙個類既繼承了類又實現了介面,那麼這個類必須寫在前面。乙個類只能繼承乙個父類,但可以實現多個介面。

例如:class student:person, icomparable

②介面:一種規範,一種能力(比如:人會跑步),可以多實現(不能叫繼承)(比如:乙個人會走路、會跑步),不包含方法的實現,不能直接例項化/

介面可以多實現,類只能單繼承

③類定義可以在不同的原始檔之間進行拆分

④介面和類都可以包含事件、索引器、方法和屬性。

多型和介面

實現多型 向上轉型 自動型別轉換 pet dog new dog 只能父類允許被訪問的方法和屬性,子類重寫了父類的方法 向下轉型 強制型別轉換 pet dog new dog dog d dog dog 不安全,結合instanceof 介面的特點 1.介面中只能有抽象方法,並且具有預設的訪問修飾符...

c 多型與介面

靜態聯編 static binding 在編譯階段,確定函式的跳轉位址.早期聯編.動態聯編 dynamic binding 在執行階段,根據指向的物件,動態地確定跳轉位址.晚期聯編.include using namespace std class animal 介面 純虛函式 純虛函式主要用來實現...

Java 介面和多型

介面 乙個比抽象類還抽象的類,介面中所有的方法都是抽象方法 介面的成員特點 1.只能有抽象方法 2.只能有常量 沒有乙個方法體,無法對變數進行初始化 3.預設使用public和abstract修飾方法 4.只能使用public和abstract修飾方法 5.預設使用public,static,fin...