C++的三大特性:封装,继承,多态
封裝,繼承,多態(tài)
封裝可以隱藏實(shí)現(xiàn)細(xì)節(jié),使得代碼模塊化
繼承可以擴(kuò)展已存在的模塊,它們目的都是為了:代碼重用。
多態(tài)是為了實(shí)現(xiàn)另一個(gè)目的:接口重用。
?
什么是多態(tài)?
? ? ?eg:開門,開窗戶,開電腦,這里“開”就是多態(tài)。
? ? ?多態(tài)性可以簡單概括為“一個(gè)接口,多種實(shí)現(xiàn)”,是通過虛函數(shù)實(shí)現(xiàn)的。基類提供一個(gè)虛接口,其派生類重寫這個(gè)接口,這樣就構(gòu)成了多態(tài)。
?
面向?qū)ο蟆庋b(特性之一)
?封裝是面向?qū)ο蟮奶卣髦?#xff0c;是對(duì)象和類概念的主要特性。封裝是把過程和數(shù)據(jù)包圍起來,對(duì)數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過一個(gè)受保護(hù)的接口訪問其他對(duì)象。一旦定義了一個(gè)對(duì)象的特性,則有必要決定這些特性的可見性,即哪些特性對(duì)外部世界是可見的,哪些特性用于表示內(nèi)部狀態(tài)。在這個(gè)階段定義對(duì)象的接口。通常,應(yīng)禁止直接訪問一個(gè)對(duì)象的實(shí)際表示,而應(yīng)通過操作接口訪問對(duì)象,這稱為信息隱藏。事實(shí)上,信息隱藏是用戶對(duì)封裝性的認(rèn)識(shí),封裝則為信息隱藏提供支持。封裝保證了模塊具有較好的獨(dú)立性,使得程序維護(hù)修改較為容易。對(duì)應(yīng)用程序的修改僅限于類的內(nèi)部,因而可以將應(yīng)用程序修改帶來的影響減少到最低限度。
?
封裝:是指隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪問方式。
封裝好處:
?
1.將變化隔離;
?
2.便于使用。
?
3.提高重用性。
?
4.提高安全性。
?
封裝原則:
?
將不需要對(duì)外提供的內(nèi)容都隱藏起來。
?
把屬性都隱藏,提供公共方法對(duì)其訪問。
?
private:關(guān)鍵字
?
A:用于修飾成員變量和成員方法。
?
B:被修飾的內(nèi)容在其他類中是不可以被訪問的。
?
注意:私有僅僅是封裝的一種體現(xiàn)而已。
?
?
面向?qū)ο蟆^承(特性之二)
?
? ? ? ? ? ? 繼承是一指一個(gè)對(duì)象從另一個(gè)對(duì)象獲得功能的過程,它提供了一種明確表述共性的方法。是一個(gè)不斷向上抽取的過程
?
例如:所有的Windows應(yīng)用程序都有一個(gè)窗口,它們可以看作都是從一個(gè)窗口類派生出來的。但是有的應(yīng)用程序用于文字處理,有的應(yīng)用程序用于繪圖,這是由于派生出了不同的子類,各個(gè)子類添加了不同的特性。
?
繼承與封裝可以共同作用.如果一個(gè)給定的類封裝了某些屬性,它的任何子類將會(huì)繼承同樣得屬性,另加各個(gè)子類所有得特有屬性。
?
繼承優(yōu)點(diǎn):
?
1,提高了代碼的復(fù)用性。
?
2,讓類與類之間產(chǎn)生了關(guān)系。有了這個(gè)關(guān)系,才有了多態(tài)的特性。
?
面向?qū)ο蟆鄳B(tài)(特性之三)
?
多態(tài)簡單說,就是某一類事物多種存在形態(tài)。例如,貓對(duì)應(yīng)的類型是貓類型,但同時(shí)他也是動(dòng)物中的一種,也可以把貓稱為動(dòng)物。又比如,同樣的選擇編輯-粘貼操作,在字處理程序和繪圖程序中有不同的效果。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù)擴(kuò)展性。
?
1,多態(tài)的體現(xiàn)
?
父類的引用指向了自己的子類對(duì)象。
?
父類的引用也可以接收自己的子類對(duì)象。
?
2,多態(tài)的前提
?
必須是類與類之間有關(guān)系。要么繼承,要么實(shí)現(xiàn)。
?
通常還有一個(gè)前提:存在覆蓋。
?
3,多態(tài)的好處
?
多態(tài)的出現(xiàn)大大的提高程序的擴(kuò)展性。
?
4,多態(tài)的弊端
?
提高了擴(kuò)展性,但是只能使用父類的引用訪問父類中的成員。
總結(jié)
以上是生活随笔為你收集整理的C++的三大特性:封装,继承,多态的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++中在什么时候需要使用“常引用”?
- 下一篇: 软件设计应该遵循的基本原则有哪些?