面向?qū)ο蟮膶傩杂靡粋€系統(tǒng)來解釋

問題:舉例說明什么是抽象、對象篮灼、類忘古、實例、消息诅诱、封裝性髓堪、繼承性和多態(tài)性。(最好是能舉出一個系統(tǒng)性的例子能將以上概念都能涉及到)

抽象

現(xiàn)在有狗和貓兩只生物,我們不考慮它們的不同之處干旁,而概括出它們都擁有毛發(fā)長短驶沼,年齡的屬性,且都擁有會叫的行為的共同特征争群。從眾多的事物中抽取出共同的回怜、本質(zhì)性的特征,而舍棄其非本質(zhì)的特征的過程就是抽象换薄。

我們將它們這種具有相同特征的事物抽象為一個類玉雾,這里我們將它們抽象為Animal類,這個類具有的屬性是length(長短)轻要,age(年齡)复旬,方法是bark()。

classAnimal{

private:

??? stringlength;

public:

??? Animal(stringstr) {

???????? length= str;

??? }

??? virtual voidbark() {

???????? cout<<"我會叫"<< endl;

??? }


};

繼承性

如果我們想建立一個新的類Dog冲泥,它與Animal這個類的內(nèi)容基本相同驹碍,在后者的基礎(chǔ)上添加了age(年齡)的屬性,并添加了返回年齡的方法凡恍,則:

class Dog :publicAnimal {

private:

??? intage;

public:

??? Dog(stringstr,inta ) :Animal(str) {

???????? age= a;

??? }

??? intShowAge() {

???????? returnage;

??? }

};

如果我們想建立一個新的類Cat志秃,它與Animal這個類的內(nèi)容基本相同,在后者的基礎(chǔ)上添加了age(年齡)的屬性嚼酝,并添加了與其它對象比較年齡大小的方法的方法洽损,則:

class Cat :publicAnimal {

private:

??? intage;

public:

??? Cat(stringstr,inta) :Animal(str) {

???????? age= a;

??? }

??? void CompareAge(inta) {

???????? if (age > a) cout

<< "我大"<< endl;

???????? else if (age == a) cout

<< "我們一樣大"<< endl;

???????? else cout << "它大"<< endl;

??? }

};

這就是類的繼承,Animal為基類革半,Dog與Cat為派生類,繼承達到了重用代碼功能和提高執(zhí)行效率的效果流码。

對象與實例

現(xiàn)在我們在主函數(shù)中給這個Dog類創(chuàng)造一個對象又官,命名為dog,則這個對象會擁有Dog類的屬性和方法漫试。dog即為Dog類的一個實例六敬,即以類為模板,構(gòu)造出了一個現(xiàn)實的具體的例子驾荣。這里我們給該對象的賦初值外构。

Dog dog("長", 4);

封裝性

但是,如果把對象的一些屬性設(shè)為private型(私有型)播掷,則其他對象就無法看到該對象的私有的變量或函數(shù)审编,只能訪問公共的服務(wù),例:將

intShowAge()

???????? returnage;

設(shè)為私有型歧匈,則cout<<dog.ShowAge();會出錯垒酬,原因為Dog::ShowAge()不可訪問,即把信息隱藏了,這就是類的封裝的作用勘究。

消息

消息是對象之間的相互請求矮湘,發(fā)消息的目的是請求某個實例對象執(zhí)行類中定義的某個操作,體現(xiàn)在函數(shù)的調(diào)用口糕。

同上缅阳,我們 Cat cat("短", 2);若cat想要比較自己與dog的年齡,則:

cat.CompareAge(dog.ShowAge());結(jié)果輸出“它大“景描,則通過消息傳遞十办,cat調(diào)用了dog返回年齡值的函數(shù),得知了dog的年齡伏伯,作為參數(shù)傳入自己比較年齡的函數(shù)橘洞,得出了結(jié)果。

多態(tài)性

當類之間存在層次結(jié)構(gòu)说搅,并且類之間是通過繼承關(guān)聯(lián)時炸枣,就會用到多態(tài)。多態(tài)意味著調(diào)用成員函數(shù)時弄唧,會根據(jù)調(diào)用函數(shù)的對象的類型來執(zhí)行不同的函數(shù)适肠。

Dog與Cat類繼承了基類的這個方法:

virtual voidbark() {

???????? cout<<"我會叫"<< endl;

??? }

我們在Dog類和Cat類中分別重寫這個函數(shù):

voidbark(){

???????? cout<<"我會汪汪叫"<< endl;

??? }

voidbark(){

???????? cout<<"我會喵喵叫"<< endl;

??? }

在主函數(shù)中:

Animal* animal;

??? Dogdog("長", 4);

??? Catcat("短", 2);

??? animal= &dog;

??? animal->bark();

??? animal= &cat;

??? animal->bark();

輸出為:

我會汪汪叫

我會喵喵叫

這里animal的指針指向不同對象時,調(diào)用同一函數(shù)會產(chǎn)生不同的結(jié)果候引,原因就是多態(tài)性會根據(jù)調(diào)用函數(shù)的對象的類型來執(zhí)行不同的函數(shù)侯养,實現(xiàn)了接口重用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澄干,一起剝皮案震驚了整個濱河市逛揩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌麸俘,老刑警劉巖辩稽,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異从媚,居然都是意外死亡逞泄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門拜效,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喷众,“玉大人,你說我怎么就攤上這事紧憾〉角В” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵赴穗,是天一觀的道長父阻。 經(jīng)常有香客問我愈涩,道長,這世上最難降的妖魔是什么加矛? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任履婉,我火速辦了婚禮,結(jié)果婚禮上斟览,老公的妹妹穿的比我還像新娘毁腿。我一直安慰自己,他們只是感情好苛茂,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布已烤。 她就那樣靜靜地躺著,像睡著了一般妓羊。 火紅的嫁衣襯著肌膚如雪胯究。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天躁绸,我揣著相機與錄音裕循,去河邊找鬼。 笑死净刮,一個胖子當著我的面吹牛剥哑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淹父,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼株婴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了暑认?” 一聲冷哼從身側(cè)響起困介,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蘸际,沒想到半個月后逻翁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡捡鱼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酷愧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驾诈。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖溶浴,靈堂內(nèi)的尸體忽然破棺而出乍迄,到底是詐尸還是另有隱情,我是刑警寧澤士败,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布闯两,位于F島的核電站褥伴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏漾狼。R本人自食惡果不足惜重慢,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逊躁。 院中可真熱鬧似踱,春花似錦、人聲如沸稽煤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酵熙。三九已至轧简,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間匾二,已是汗流浹背哮独。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留假勿,地道東北人借嗽。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像转培,于是被迫代替她去往敵國和親恶导。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容