關於物件導向多型的理解

2021-10-02 00:23:15 字數 1003 閱讀 5458

子類物件位址可以賦值給父類指標,可以通過父類指標呼叫與子類函式名和參數列相同的虛函式,在程式執行時,當父類指標指向父類物件的位址時則呼叫父類的虛函式,當父類的指標指向子類物件的位址時呼叫子類的虛函式,讓同一條函式語句呼叫達成不同的結果。

比如學校發通知元旦班級要有人去表演,同學a可以代表我們班去表演,同學b也可以,也可以整個班一起上去表演,**和結果如下。

#include

#include

class myclass {

public:

virtual void play() {

std::cout << "全班同學一起表演" << std::endl;

class studenta : public myclass {

public:

virtual void play() {

std::cout << "同學a表演" << std::endl;

class studentb : public myclass {

public:

virtual void play() {

std::cout << "同學b表演" << std::endl;

void whoplay(myclass &c) {

c.play();

int main() {

myclass c, *pc;

studenta a;

studentb b;

// 全班一起去表演

pc = &c;

pc->play();

// 同學代表班級a去表演

pc = &a;

pc->play();

// 同學代表班級b去表演

物件導向 理解多型

一 多型的概念 多型通俗來說,就是多種形態,完成某個行為,當不同的物件去完成某個行為時會產生不同的狀態。二 多型的定義及實現 1 多型定義的構成條件 多型是在不同繼承關係的類物件,去呼叫同一函式,產生了不同行為。例如在火車站買票時,學生和 分別去買票,學生買的是半價票,買的是全價票。同樣是買票,但是...

物件導向的多型

多型 1.必須要存在繼承關係 2.存在方法的重寫 不是必須,但是不重寫沒有意義 動物 d new 貓 動物 d new 狗 3.父類要指向之類的引用 父 f new 子 多型的注意事項 1.多型成員訪問的特點 fu f new zi 左邊為父類 右邊為子類 1 成員變數 編譯看左邊,執行看左邊 2 ...

鴨子型別 物件導向多型的理解

在程式設計中,鴨子型別 duck typing 是動態型別的一種風格。鴨子型別的核心概念在於乙個物件的有效語義,不是繼承自特定的類或者實現特定的方法,而是由當前的屬性和方法集合決定的。鴨子型別 可以這樣表述 乙隻鳥走起來像鴨子 游泳起來像鴨子 叫起來也像鴨子,那麼這只鳥可以被稱為鴨子 在鴨子型別中,...