封裝、繼承、多態(tài)是面向?qū)ο蠹夹g(shù)的三大機(jī)制,其中封裝是基礎(chǔ),繼承是關(guān)鍵,多態(tài)是延伸。
1.封裝
封裝的對(duì)象是數(shù)據(jù)和方法,支持?jǐn)?shù)據(jù)封裝就是支持?jǐn)?shù)據(jù)抽象。在c++中,類是支持?jǐn)?shù)據(jù)封裝的工具,對(duì)象則是數(shù)據(jù)封裝的實(shí)現(xiàn)。沒(méi)有封裝,就沒(méi)有面向?qū)ο蠹夹g(shù)。
另外,封裝還提供一種對(duì)數(shù)據(jù)訪問(wèn)嚴(yán)格控制的機(jī)制。因此,數(shù)據(jù)將被隱藏在封裝體中,該封裝體通過(guò)操作接口與外界交換信息。
對(duì)象被說(shuō)明為給定類的量。每個(gè)給定類的對(duì)象包含有這個(gè)類所規(guī)定的若干個(gè)私有成員和公有成員以及保護(hù)成員。
在C語(yǔ)言中可以定義結(jié)構(gòu),但這種結(jié)構(gòu)只包含數(shù)據(jù),而不包含函數(shù)。C++中的類是數(shù)據(jù)和函數(shù)的封裝體。在C++中,結(jié)構(gòu)可作為一種特殊的類,它雖然可以包含函數(shù),但是它沒(méi)有私有或保護(hù)的成員。
2.繼承
類提供了說(shuō)明一組對(duì)象結(jié)構(gòu)的機(jī)制。借助于繼承這一重要機(jī)制,已存在的類具有建立子類的能力,進(jìn)而建立類的層次,擴(kuò)充類的定義。
繼承提供了創(chuàng)建新類的一種方法,一個(gè)新類可以通過(guò)對(duì)已有類進(jìn)行修改和擴(kuò)充來(lái)定義。從一個(gè)類繼承定義的新類,將繼承已有類的方法和屬性,并且可添加不包含在父類中的新方法和屬性。新類被稱為已有類的子類,又稱為派生類,已有類稱為新類的父類,又稱為基類。
C++中允許單繼承和多繼承,一個(gè)類可以根據(jù)需要生成派生類。
通過(guò)繼承,實(shí)現(xiàn)代碼重用,減少代碼冗余,簡(jiǎn)化接口和界面。
3.多態(tài)
多態(tài)是指相同的語(yǔ)法結(jié)構(gòu)可以代表不同類型的實(shí)體或者對(duì)不同類型的實(shí)體進(jìn)行操作,即發(fā)出同樣的消息被不同對(duì)象接收時(shí)導(dǎo)致完全不同的行為。
c++允許函數(shù)名和運(yùn)算符重載,允許一個(gè)相同的標(biāo)識(shí)符或運(yùn)算符代表多個(gè)不同實(shí)現(xiàn)的函數(shù),這是編譯時(shí)的多態(tài)性。
C++中可以定義虛函數(shù),通過(guò)定義虛函數(shù)來(lái)支持動(dòng)態(tài)聯(lián)編。動(dòng)態(tài)聯(lián)編是另一類重要的多態(tài)性,多態(tài)性形成由父類和它們的子類組成的一個(gè)樹(shù)型結(jié)構(gòu)。在這個(gè)樹(shù)中的每一個(gè)子類可接收一個(gè)或多個(gè)具有相同名字的消息。當(dāng)一個(gè)消息被這個(gè)樹(shù)中一個(gè)類的一個(gè)對(duì)象接收時(shí),這個(gè)對(duì)象動(dòng)態(tài)地決定給子子類對(duì)象的消息的某種用法。這是執(zhí)行時(shí)的多態(tài)性。
1.封裝
封裝的對(duì)象是數(shù)據(jù)和方法,支持?jǐn)?shù)據(jù)封裝就是支持?jǐn)?shù)據(jù)抽象。在c++中,類是支持?jǐn)?shù)據(jù)封裝的工具,對(duì)象則是數(shù)據(jù)封裝的實(shí)現(xiàn)。沒(méi)有封裝,就沒(méi)有面向?qū)ο蠹夹g(shù)。
另外,封裝還提供一種對(duì)數(shù)據(jù)訪問(wèn)嚴(yán)格控制的機(jī)制。因此,數(shù)據(jù)將被隱藏在封裝體中,該封裝體通過(guò)操作接口與外界交換信息。
對(duì)象被說(shuō)明為給定類的量。每個(gè)給定類的對(duì)象包含有這個(gè)類所規(guī)定的若干個(gè)私有成員和公有成員以及保護(hù)成員。
在C語(yǔ)言中可以定義結(jié)構(gòu),但這種結(jié)構(gòu)只包含數(shù)據(jù),而不包含函數(shù)。C++中的類是數(shù)據(jù)和函數(shù)的封裝體。在C++中,結(jié)構(gòu)可作為一種特殊的類,它雖然可以包含函數(shù),但是它沒(méi)有私有或保護(hù)的成員。
2.繼承
類提供了說(shuō)明一組對(duì)象結(jié)構(gòu)的機(jī)制。借助于繼承這一重要機(jī)制,已存在的類具有建立子類的能力,進(jìn)而建立類的層次,擴(kuò)充類的定義。
繼承提供了創(chuàng)建新類的一種方法,一個(gè)新類可以通過(guò)對(duì)已有類進(jìn)行修改和擴(kuò)充來(lái)定義。從一個(gè)類繼承定義的新類,將繼承已有類的方法和屬性,并且可添加不包含在父類中的新方法和屬性。新類被稱為已有類的子類,又稱為派生類,已有類稱為新類的父類,又稱為基類。
C++中允許單繼承和多繼承,一個(gè)類可以根據(jù)需要生成派生類。
通過(guò)繼承,實(shí)現(xiàn)代碼重用,減少代碼冗余,簡(jiǎn)化接口和界面。
3.多態(tài)
多態(tài)是指相同的語(yǔ)法結(jié)構(gòu)可以代表不同類型的實(shí)體或者對(duì)不同類型的實(shí)體進(jìn)行操作,即發(fā)出同樣的消息被不同對(duì)象接收時(shí)導(dǎo)致完全不同的行為。
c++允許函數(shù)名和運(yùn)算符重載,允許一個(gè)相同的標(biāo)識(shí)符或運(yùn)算符代表多個(gè)不同實(shí)現(xiàn)的函數(shù),這是編譯時(shí)的多態(tài)性。
C++中可以定義虛函數(shù),通過(guò)定義虛函數(shù)來(lái)支持動(dòng)態(tài)聯(lián)編。動(dòng)態(tài)聯(lián)編是另一類重要的多態(tài)性,多態(tài)性形成由父類和它們的子類組成的一個(gè)樹(shù)型結(jié)構(gòu)。在這個(gè)樹(shù)中的每一個(gè)子類可接收一個(gè)或多個(gè)具有相同名字的消息。當(dāng)一個(gè)消息被這個(gè)樹(shù)中一個(gè)類的一個(gè)對(duì)象接收時(shí),這個(gè)對(duì)象動(dòng)態(tài)地決定給子子類對(duì)象的消息的某種用法。這是執(zhí)行時(shí)的多態(tài)性。

