4. 過載 覆蓋 隱藏 的對比
5. 抽象類
多型是在不同繼承關係的類物件,去呼叫同一函式,產生了不同的行為。比如student繼承了person。person物件買票全價,student物件買票半價。
繼承中構成多型的條件:
必須通過基類的指標或者引用呼叫虛函式被呼叫的函式必須是虛函式,且派生類必須對基類的虛函式進行重寫
#include
class
person};
class
student
:public person};
void
test()
輸出:全價票
半價票
class
person
};
class
person};
class
student
:public person
};
class
person};
class
student
:public person
};
①協變(父子類中重寫虛函式的返回值不同)
classa;
classb:
public a
;class
person};
class
student
:public person
};
②虛析構函式的重寫(父子類中虛析構函式函式名不同)
class
person};
class
student
:public person };
void
test()
輸出:① final:修飾虛函式,表示該函式不能再被重寫~
person()
~student()
~person
()
class
car}
;class
benz
:public car
};
報錯:error c3248: 「car::drive」: 宣告為「final」的函式無法被「benz::drive」重寫② override:檢查子類虛函式是否重寫了父類某個虛函式,如果沒有重寫編譯報錯
class
car}
;class
benz
:public car
};
報錯:error c3668: 「benz::drve」: 包含重寫說明符「override」的方法沒有重寫任何基類方法
class
car;
class
benz
:public car};
class
bmw:
public car};
void
test()
輸出benz-舒適
bmw-操控
C 入門 多型(二)
c 入門 多型 二 一.簡單工廠設計模式 核心 根據使用者的輸入建立物件賦值給父類 namespace demo 簡單工廠的核心 根據使用者的輸入建立物件賦值給父類 public static notebook getnotebook string brand return nb public ab...
C 快速入門 10 多型
當子類繼承父類,並且子類重寫了父類的函式的時候,當我們使用父類物件指向子類引用的時候,我們希望呼叫的是子類的函式,而不是父類的函式,如果當父類物件指向自身的時候,我們希望呼叫的是父類自身的函式,而不是子類的函式,這就是c 中的多型,這就意味著,乙個父類可以有多種指向方式,我們完全可以讓多個類繼承於同...
c 從入門到精通 多型
多型按字面的意思就是多種形態。當類之間存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。c 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。下面的例項中,基類 shape 被派生為兩個類,如下所示 include using namespace std class sha...