一、面向?qū)ο蟪绦蛟O(shè)計(jì)的4個(gè)主要特點(diǎn) 抽象、封裝、繼承和多態(tài)性 繼承 在已有類(lèi)的基礎(chǔ)上建立一個(gè)新類(lèi)的過(guò)程稱(chēng)為繼承 被繼承的已有類(lèi)稱(chēng)為基類(lèi)(父類(lèi)) 派生 在已有類(lèi)的基礎(chǔ)上新增自己的特性而產(chǎn)生新類(lèi)的過(guò)程稱(chēng)為派生 派生出的新類(lèi)稱(chēng)為派生類(lèi)(子類(lèi)) 二、繼承與派生的概念 基類(lèi)綜合了派生類(lèi)的公共特征,派生類(lèi)則在基類(lèi)的基礎(chǔ)上增加某些特性 基類(lèi)是派生類(lèi)的抽象,派生類(lèi)是基類(lèi)的具體化 繼承與派生的目的:實(shí)現(xiàn)代碼的重用 三、派生類(lèi)的繼承方式 (1)公有繼承 在定義一個(gè)派生類(lèi)時(shí)將基類(lèi)的繼承方式指定為public的,稱(chēng)為公有繼承 用公有繼承方式建立的派生類(lèi)稱(chēng)為公有派生類(lèi),其基類(lèi)稱(chēng)為公有基類(lèi) 采用公有繼承方式時(shí),基類(lèi)的public和PRotected成員的訪問(wèn)屬性在派生類(lèi)中保持不變,但基類(lèi)的private成員成為派生類(lèi)中的不可直接訪問(wèn)成員 派生類(lèi)的對(duì)象可以訪問(wèn)基類(lèi)的公有成員 (2)私有繼承 在定義一個(gè)派生類(lèi)時(shí)將基類(lèi)的繼承方式指定為private的,稱(chēng)為私有繼承 用私有繼承方式建立的派生類(lèi)稱(chēng)為私有派生類(lèi),其基類(lèi)稱(chēng)為私有基類(lèi) 采用私有繼承方式時(shí),基類(lèi)的public和protected成員的訪問(wèn)屬性都相當(dāng)于派生類(lèi)的私有成員,基類(lèi)的private成員成為派生類(lèi)中的不可直接訪問(wèn)成員 派生類(lèi)的對(duì)象不可以訪問(wèn)基類(lèi)的公有成員 (3)保護(hù)繼承 在定義一個(gè)派生類(lèi)時(shí)將基類(lèi)的繼承方式指定為protected的,稱(chēng)為保護(hù)繼承 用保護(hù)繼承方式建立的派生類(lèi)稱(chēng)為保護(hù)派生類(lèi),其基類(lèi)稱(chēng)為保護(hù)基類(lèi) 采用保護(hù)繼承方式時(shí),基類(lèi)的public和protected成員都成為派生類(lèi)中的保護(hù)成員,基類(lèi)的private成員成為派生類(lèi)中的不可直接訪問(wèn)成員 保護(hù)成員:不能被類(lèi)外訪問(wèn),但可以被派生類(lèi)的成員訪問(wèn),既實(shí)現(xiàn)了數(shù)據(jù)隱藏,又方便繼承,實(shí)現(xiàn)代碼重用 派生類(lèi)的對(duì)象不可以訪問(wèn)基類(lèi)的公有成員 四、派生類(lèi)的繼承方式 在派生類(lèi)中,成員有4種訪問(wèn)屬性 公有的,派生類(lèi)內(nèi)和派生類(lèi)外都可以訪問(wèn),在其下一層公有派生類(lèi)中可以訪問(wèn) 受保護(hù)的,派生類(lèi)內(nèi)可以訪問(wèn),派生類(lèi)外不能訪問(wèn),在其下一層公有派生類(lèi)中可以訪問(wèn) 私有的,派生類(lèi)內(nèi)可以訪問(wèn),派生類(lèi)外不能訪問(wèn),在其下一層公有派生類(lèi)中不可以訪問(wèn) 不可訪問(wèn)的,派生類(lèi)內(nèi)和派生類(lèi)外都不能訪問(wèn),在其下一層派生類(lèi)中不可以訪問(wèn) 五、派生類(lèi)的構(gòu)造函數(shù)和析構(gòu)函數(shù) 基類(lèi)的構(gòu)造函數(shù)不被繼承,因此,對(duì)繼承過(guò)來(lái)的基類(lèi)成員初始化的工作也要由派生類(lèi)的構(gòu)造函數(shù)承擔(dān)。 在派生類(lèi)中聲明構(gòu)造函數(shù)時(shí),只需要對(duì)本類(lèi)中新增成員進(jìn)行初始化,對(duì)繼承來(lái)的基類(lèi)成員的初始化,調(diào)用基類(lèi)構(gòu)造函數(shù)完成 派生類(lèi)的構(gòu)造函數(shù)需要給基類(lèi)的構(gòu)造函數(shù)傳遞參數(shù) 六、簡(jiǎn)單派生類(lèi)的構(gòu)造函數(shù) 在建立一個(gè)對(duì)象時(shí)執(zhí)行構(gòu)造函數(shù)的順序 派生類(lèi)構(gòu)造函數(shù)先調(diào)用基類(lèi)構(gòu)造函數(shù),再執(zhí)行派生類(lèi)構(gòu)造函數(shù)本身 派生類(lèi)對(duì)象釋放時(shí),析構(gòu)函數(shù)的調(diào)用順序 先執(zhí)行派生類(lèi)析構(gòu)函數(shù),再執(zhí)行基類(lèi)析構(gòu)函數(shù) 七、有子對(duì)象的派生類(lèi)的構(gòu)造 子對(duì)象:類(lèi)的數(shù)據(jù)成員中包含的類(lèi)的對(duì)象 派生類(lèi)構(gòu)造函數(shù)的任務(wù) 對(duì)基類(lèi)數(shù)據(jù)成員的初始化 對(duì)子對(duì)象數(shù)據(jù)成員的初始化 對(duì)派生類(lèi)數(shù)據(jù)成員的初始化 派生類(lèi)構(gòu)造函數(shù)的一般形式 派生類(lèi)構(gòu)造函數(shù)名(總參數(shù)表列):基類(lèi)構(gòu)造函數(shù)名(參數(shù)表列), 子對(duì)象名(參數(shù)表列) {派生類(lèi)中新增數(shù)據(jù)成員的初始化;} 八、
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注