資源描述:
《C++程序設(shè)計(jì) 第9章 繼承性和派生類.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第9章繼承性和派生類本章內(nèi)容提示基類和派生類多繼承虛基類2008-2009-22第9章繼承性和派生類一、基類和派生類什么是繼承?繼承(inheritance)是用來(lái)描述兩個(gè)類之間的關(guān)系,它也是用己知類定義一個(gè)新類的方法。兩個(gè)類之間關(guān)系:包含關(guān)系/組合/聚合嵌套關(guān)系繼承關(guān)系汽車轎車卡車2008-2009-23第9章繼承性和派生類一、基類和派生類基類與派生類通過(guò)繼承機(jī)制可以利用已有的類定義一個(gè)新類已有類稱為基類(baseclass),也稱為父類新類稱為派生類(derivedclass),也稱為子類、導(dǎo)出類這個(gè)繼承過(guò)程,我們稱為派生。2008-2009-24第9章繼承性和派生類單繼承與多繼承單繼承:
2、派生類只有一個(gè)基類。多繼承:派生類可以有若干個(gè)基類。人類學(xué)生類教師類學(xué)生類男人類男生類2008-2009-25第9章繼承性和派生類1.派生類的定義格式單繼承時(shí)派生類定義格式如下:class派生類名:繼承方式基類名{派生類中的新成員};注意:每個(gè)類可以有多個(gè)派生類,但每個(gè)派生類只能有一個(gè)基類。新定義的類名已有類名2008-2009-26第9章繼承性和派生類例:?jiǎn)卫^承定義classMammal//定義一個(gè)基類{protected:intitsAge;intitsWeight;public:intGetAge(){returnitsAge;}voidSetAge(intage){itsAge=age
3、;}intGetWeight(){returnitsWeight;}voidSetWeight(intitsWeight;)};問(wèn)題:如已定義了基類:Mammal類,如何定義一個(gè)派生類:Dog類。classDog:publicMammal//定義一個(gè)派生類{private:charitsColor[10];public:charGetColor{returnitsColor;}voidSetColor(char*color){strcpy(itscolor,color);}voidWagTail(){cout<<"尾巴搖搖…";}};2008-2009-27第9章繼承性和派生類1.派生類的
4、定義格式多繼承時(shí)派生類定義格式如下:class派生類名:繼承方式1基類名1,繼承方式2基類名2,…{派生類中的新成員};注意:每個(gè)類可以有多個(gè)派生類,每個(gè)派生類可以有多個(gè)基類。2008-2009-28第9章繼承性和派生類例:多繼承定義classFan//定義基類Fan{private:intflag,power;public:voidon(){flag=1;cout<<"打開(kāi)風(fēng)扇";}voidoff(){flag=0;cout<<"關(guān)閉風(fēng)扇";}};問(wèn)題:如已定義兩個(gè)基類:Fan類和一個(gè)Lamp類,如何定義一個(gè)派生類:FanLamp類。classLamp//定義基類Lamp{priva
5、te:intflag,power;public:voidon(){flag=1;cout<<"開(kāi)燈";}voidoff(){flag=0;cout<<"關(guān)燈";}};//定義派生類FanLampclassFanLamp:publicFan,publicLamp{private:floatprice;public:voidprint(cout<<"價(jià)格"<6、blic:公有繼承特點(diǎn):繼承基類中public和protected成員作為派生類的public和protected成員,即保持他們?cè)械脑L問(wèn)權(quán)限,而基類中的private成員在派生類中不可訪問(wèn)。private:私有繼承特點(diǎn):繼承基類中public和protected成員都作為派生類的private成員。protected:保護(hù)繼承特點(diǎn):繼承基類中public和protected成員都作為派生類的protected成員。2008-2009-211第9章繼承性和派生類public:公有繼承私有成員:……保護(hù)成員:……公有成員:……自身新成員:……保護(hù)成員:……公有成員:……不可繼承可繼承基類派生類
7、繼承的基類成員2008-2009-212第9章繼承性和派生類private:私有繼承返回私有成員:……保護(hù)成員:……公有成員:……自身成員:……私有成員:……不可繼承可繼承基類派生類繼承的基類成員2008-2009-213第9章繼承性和派生類protected:保護(hù)繼承返回私有成員:……保護(hù)成員:……公有成員:……自身成員:……保護(hù)成員:……不可繼承可繼承基類派生類繼承的基類成員2008-2009