多型性就是不同物件收到相同訊息,產生不同的行為。可以用同樣的介面訪問功能不同的函式,從而實現「乙個介面,多種方法」。
靜態聯編支援的多型性稱為編譯時多型性(靜態多型性)。在c++中,編譯時多型性是通過函式過載和模板實現的。利用函式過載機制,在呼叫同名函式時,編譯系統會根據實參的具體情況確定索要呼叫的是哪個函式。
動態聯編所支援的多型性稱為執行時多型(動態多型)。在c++中,執行時多型性是通過虛函式來實現的。
編譯時和執行時具體過程可參考:
主要是為了實現動態多型而設計。用virtual關鍵字申明的函式叫做虛函式。
虛函式的重寫:派生類中有乙個跟基類的完全相同的虛函式,我們就稱子類的虛函式重寫了基類的虛函式。「完全相同」是指:函式名、引數、返回值都相同。
動態多型的實現
#include usingnamespace
std;
class
person
};class student : public
person
};class teacher : public
person
};class bachelor : public
student
};int
main()
C 三大特性之多型
c 的三大特性,封裝,繼承,多型。封裝可以使得 模組化,繼承可以擴充套件已存在的 而多型的目的則是為了介面重用。本篇部落格主要介紹c 中多型的相關概念及使用方法。多型性是允許你將父物件設定成為和乙個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。簡...
三大特性之 多型
乙個行為不同的物件產生出不同的形態這就是多型,多型也是實現 復用的方式那麼為什麼呢?為什麼多型也是 復用的產物呢,因為多型的第乙個前提就是繼承,必須建立在繼承的基礎之上,才有多型之談,也就是說這個不同的物件也是有前提的,就是在繼承的條件之下的不同的類物件,簡單來說就是子類和基類 多型的第乙個條件就是...
C 三大特性之多型(詳細)
c 特性詳解 c 分為三大特性 封裝 繼承 多型 封裝 類是物件導向程式設計語言中的乙個概念。類是對某個物件的定義。包含有關物件動作方式的資訊,包括它的名稱 方法 屬性和事件。封裝的類有如下的訪問型別 1 公有 public 成員可以在類外訪問 2 私有 private 成員只能被該類的成員函式訪問...