再談多態

多態的概念

  1. 多態
    多態的概念:通俗來說,就是多種形態,具體點就是去完成某個行爲,當不同的對象去完成時會產生出不同 的狀態。

2.舉個栗子
比如買票這個行爲,當普通人買票時,是全價買票;學生買票時,是半價買票;軍人買票時是優 先買票。
再舉個栗子: 最近爲了爭奪在線支付市場,支付寶年底經常會做誘人的掃紅包-支付-給獎勵金的活動。那麼 大家想想爲什麼有人掃的紅包又大又新鮮8塊、10塊…,而有人掃的紅包都是1毛,5毛…。其實這背後也是 一個多態行爲。支付寶首先會分析你的賬戶數據,比如你是新用戶、比如你沒有經常支付寶支付等等,那麼 你需要被鼓勵使用支付寶,那麼就你掃碼金額 = random()%99;比如你經常使用支付寶支付或者支付寶賬戶 中常年沒錢,那麼就不需要太鼓勵你去使用支付寶,那麼就你掃碼金額 = random()%1;總結一下:同樣是 掃碼動作,不同的用戶掃得到的不一樣的紅包,這也是一種多態行爲。ps:支付寶紅包問題純屬瞎編,大家 僅供娛樂。
多態的定義及實現


1.多態定義的構成條件

多態是在不同繼承關係的類對象,去調用同一函數,產生了不同的行爲。比如Student繼承了Person。 Person對象買票全價,Student對象買票半價。

那麼在繼承中要構成多態的還有兩個條件:

調用函數的對象必須是指針或者引用
被調用的函數必須是虛函數,且完成了虛函數的重寫

這裏提到的虛函數是什麼呢?

虛函數:就是在類的成員函數的前面加virtual關鍵字

什麼是虛函數的重寫?

虛函數的重寫:派生類中有一個跟基類的完全相同虛函數,我們就稱子類的虛函數重寫了基類的虛函數,完全相同是指:函數名、參數、返回值都相同。另外虛函數的重寫也叫作虛函數的覆蓋
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章