一、面向對象程序設計的4個主要特點 抽象、封裝、繼承和多態性 繼承 在已有類的基礎上建立一個新類的過程稱為繼承 被繼承的已有類稱為基類(父類) 派生 在已有類的基礎上新增自己的特性而產生新類的過程稱為派生 派生出的新類稱為派生類(子類) 二、繼承與派生的概念 基類綜合了派生類的公共特征,派生類則在基類的基礎上增加某些特性 基類是派生類的抽象,派生類是基類的具體化 繼承與派生的目的:實現代碼的重用 三、派生類的繼承方式 (1)公有繼承 在定義一個派生類時將基類的繼承方式指定為public的,稱為公有繼承 用公有繼承方式建立的派生類稱為公有派生類,其基類稱為公有基類 采用公有繼承方式時,基類的public和PRotected成員的訪問屬性在派生類中保持不變,但基類的private成員成為派生類中的不可直接訪問成員 派生類的對象可以訪問基類的公有成員 (2)私有繼承 在定義一個派生類時將基類的繼承方式指定為private的,稱為私有繼承 用私有繼承方式建立的派生類稱為私有派生類,其基類稱為私有基類 采用私有繼承方式時,基類的public和protected成員的訪問屬性都相當于派生類的私有成員,基類的private成員成為派生類中的不可直接訪問成員 派生類的對象不可以訪問基類的公有成員 (3)保護繼承 在定義一個派生類時將基類的繼承方式指定為protected的,稱為保護繼承 用保護繼承方式建立的派生類稱為保護派生類,其基類稱為保護基類 采用保護繼承方式時,基類的public和protected成員都成為派生類中的保護成員,基類的private成員成為派生類中的不可直接訪問成員 保護成員:不能被類外訪問,但可以被派生類的成員訪問,既實現了數據隱藏,又方便繼承,實現代碼重用 派生類的對象不可以訪問基類的公有成員 四、派生類的繼承方式 在派生類中,成員有4種訪問屬性 公有的,派生類內和派生類外都可以訪問,在其下一層公有派生類中可以訪問 受保護的,派生類內可以訪問,派生類外不能訪問,在其下一層公有派生類中可以訪問 私有的,派生類內可以訪問,派生類外不能訪問,在其下一層公有派生類中不可以訪問 不可訪問的,派生類內和派生類外都不能訪問,在其下一層派生類中不可以訪問 五、派生類的構造函數和析構函數 基類的構造函數不被繼承,因此,對繼承過來的基類成員初始化的工作也要由派生類的構造函數承擔。 在派生類中聲明構造函數時,只需要對本類中新增成員進行初始化,對繼承來的基類成員的初始化,調用基類構造函數完成 派生類的構造函數需要給基類的構造函數傳遞參數 六、簡單派生類的構造函數 在建立一個對象時執行構造函數的順序 派生類構造函數先調用基類構造函數,再執行派生類構造函數本身 派生類對象釋放時,析構函數的調用順序 先執行派生類析構函數,再執行基類析構函數 七、有子對象的派生類的構造 子對象:類的數據成員中包含的類的對象 派生類構造函數的任務 對基類數據成員的初始化 對子對象數據成員的初始化 對派生類數據成員的初始化 派生類構造函數的一般形式 派生類構造函數名(總參數表列):基類構造函數名(參數表列), 子對象名(參數表列) {派生類中新增數據成員的初始化;} 八、
新聞熱點
疑難解答