C 多型性 什麼是多型

2021-08-25 13:08:31 字數 531 閱讀 9051

下面舉乙個生活的例子來理解多型。如果要求3種人——孩子,運動員,**演奏者都執行乙個動作「play」,會發生什麼情況呢?

孩子會出去玩耍。

運動員會比賽。

演員開始演奏。

對於同乙個命令,不同的人會有不同的反應,執行不同的動作,這就是生活中乙個多型。在程式設計中,對於同乙個方法,由於執行的物件不同,方法的內容也就不同。執行的結果也是不相同的。

同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。

多型性通過派生類覆寫基類中的虛函式型方法來實現。

多型性分為兩種,一種是編譯時的多型性,一種是執行時的多型性。

編譯時的多型性:編譯時的多型性是通過過載來實現的。對於非虛的成員來說,系統在編譯時,根據傳遞的引數、返回的型別等資訊決定實現何種操作。

執行時的多型性:執行時的多型性就是指直到系統執行時,才根據實際情況決定實現何種操作。c#中執行時的多型性是通過覆寫虛成員實現。

我們來分別說明一下多型中涉及到的四個概念:過載,覆寫,虛方法和抽象方法

C 多型性 什麼是多型

下面舉乙個生活的例子來理解多型。如果要求3種人 孩子,運動員,演奏者都執行乙個動作 play 會發生什麼情況呢?孩子會出去玩耍。運動員會比賽。演員開始演奏。對於同乙個命令,不同的人會有不同的反應,執行不同的動作,這就是生活中乙個多型。在程式設計中,對於同乙個方法,由於執行的物件不同,方法的內容也就不...

什麼是多型性?

多型性分 過載 overload,過載只是函式名相同,返回型別,引數不同,早期匹配 虛函式 函式必須有完全相同的返回型別和參數列,晚期匹配 虛函式 一般虛函式 基類有函式體有實現,子類可重寫也可不重寫 純虛函式 基類只有函式體沒有實現 virtual fun 0,子類必須實現此函式體,至少含有乙個純...

什麼是類的多型性

理解c 多型性之前首先理解一下什麼叫多型。同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。c 多型性通過派生類覆寫基類中的虛函式型方法來實現。c 多型性分為兩種,一種是編譯時的多型性,一種是執行時的多型性。編譯時的多型性 編譯時的多型性是通過過載來實現的。對於非虛的成員...