日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

龍生9子----多態(續轉)

龍生9子----多態(續轉)

更新時間:2022-05-01 文章作者:未知 信息來源:網絡 閱讀次數:

龍生九子

----多態

作者:HolyFire

一龍生九子,子子皆不同。這個道理說的是世界上沒有兩個或兩個以上的事物是完全相同的,事物之間有相同相似的一面,當然也有不同相異的一面。只有將不同的和相同的都考慮進來,才能完整的表達事物。

事物的屬性有著不同的一面。我們知道人感知事物的一個途徑是觀察,用對不同光線的反應來識別物體,所以我們給出事物的一個屬性,顏色。有時候一些物體的顏色是固定的,白色的云,蔚藍的天空,碧綠的草地,不禁令人神游太虛。

但有些方面是不確定的,有一句話說道:“月有陰晴圓缺,人有悲歡離合”,這句話還不足以說明這個道理。我們中文里有時候會省略一些部分,“今天你吃了沒有?”吃的是什么,“早飯”,“下午茶”,“面包”,不知道。這里將吃東西抽象化了,這句話可以在早上說,中午說,晚上說,任何一個適合的時間段都可以說。感興趣的地方出現了,我們不知道吃什么東西,什么時候吃,但是卻可以使用它,簡要的表達一下你的問候。這樣簡單的設下伏筆,在具體需要的環境才用具體表現出來具體的用法,被廣泛運用在生活中!拔铱!”表達了一個人要做的動作,具體砍什么,只有感興趣的人才會去關注。“我生病了!北磉_了一個人的狀態,具體生的什么病,不是人人都想知道的。

多態--就是指事物不同的方面

多態是一種復雜的應用,要全面的闡述它很難,所以理解它的思想就成了重點。在不同情況下,秉承它的思想,用不同的方法實現多態。

還記得C++中的虛函數嗎,我在《后入為主----虛函數》中講過,虛函數可以動態改變,運用這個特性就能實現我們的目的了。不同的語言使用不同的方法,實現的機制就是一個類型提供的接口可以改變。這樣就能體現不同這個思想了。

為了更好理解,我們用C++實現一個例子。

我們知道,要生活,就要工作,工作是人的社會行為,幾乎人人都在工作。世界上有形形色色的人,人的工作的區分在什么地方呢,那就是它的職業,不同職業的人做不同的事。

學生的工作就是學習,司機的工作是開車,小販的工作是賣商品,程序員的工作是編寫代碼。

現在我們分析一下,世界上有很多人,人都要工作

人 { 工作 = 未確定 }

學生的工作是學習

學生 { 人 , 工作 = 學習 }

司機的工作是開車

司機 { 人 , 工作 = 開車 }

小販的工作是販賣

小販 { 人 , 工作 = 販賣 }

程序員的工作是編程

程序員 { 人 , 工作 = 編程 }

#include <iostream>

unsing namespace std;

class Man{

public:

virtual void Work( void ) = 0;//純虛函數,沒有確定的職業就不知道他的工作。

};

class Student : public Man{

public:

void Work( void ) { cout << "I'm Learning."<< endl; };

};

class Chauffeur : public Man{

public:

void Work( void ) { cout << "I'm Driving."<< endl; };

};

class Vendor : public Man{

public:

void Work( void ) { cout << "I'm Vending."<< endl; };

};

class Programer : public Man{

public:

void Work( void ) { cout << "I'm Coding."<< endl; };

};

void main()

{

Man * which[5];

which[0] = new Student;

which[1] = new Chauffeur;

which[2] = new Vendor;

which[3] = new Programer;

which[4] = NULL;

for( int i = 0 ; which[i] ; i++ )

 {

which[i]->Work();

delete which[i];

 }

}

運行結果

I'm Learning. //虛函數表指針指向的Student的虛函數表

I'm Driving.//虛函數表指針指向的Chauffeur的虛函數表

I'm Vending.//虛函數表指針指向的Vendor的虛函數表

I'm Coding. //虛函數表指針指向的Programer的虛函數表

我們看到了由于使用了虛函數,類增加了虛函數表和虛函數表指針

which[0] = new Student;

我們分析這個指針,他指向一個Student對象,而這個指針描述的是一個Man對象,在Student對象被創建的時候虛函數表指針指向了Student的虛函數表,所以which[0]->Work();調用的是在Student的虛函數表里查出來的Student::Work();其它的以此類推,不難得到運行的結果。

不同職業的類用同一個接口實現了不同功能,我們的目的達到了,代碼很簡潔,意圖很明顯,這里C++又一次很好的實現了面向對象的思想。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 国产高清精品自在久久 | 欧美日韩国产综合在线 | 精品欧美在线精品 | 国产91在线精品福利 | 日韩最新视频一区二区三 | 日韩一区二区三区四区区区 | 欧美黑人巨大xxxx | 狠狠色噜噜狠狠狠合久 | 中文字幕欧美日韩在线不卡 | 中文字幕色综合久久 | 亚洲在线免费观看 | 欧美国产亚洲精品高清不卡 | 日本人与黑人做爰巨大和娇小 | 亚洲国产一区二区三区a毛片 | 欧美末成年videos丨 | 人人干视频在线观看 | 成人免费黄色小视频 | 国产精品一区二 | 中文字幕成人 | 六月婷婷在线视频 | 男人与女人真正曰批视频 | 日韩视频一区二区在线观看 | 91午夜在线 | 久久精品国产精品亚洲20 | 边接电话边做国语高清对白 | 99久久免费国产特黄 | 国产最爽的乱淫视频国语 | 亚洲欧美成人综合久久久 | 中文字幕在线亚洲 | 国产精品免费观看 | 国产一级毛片免 | 日本免费观看的视频在线 | 91精品国产综合久 | 91夜色视频 | 国产精品热久久毛片 | 国产精品合集久久久久青苹果 | 成人a级高清视频在线观看 成人a免费α片在线视频网站 | 国产亚洲精品自在久久77 | 亚洲欧美专区精品久久 | 婷婷中文 | 亚洲国产欧美日韩 |