面向對象的三個特徵。

引用文章:http://blog.csdn.net/ma1kong/article/details/4457044面試

引用介紹:一篇偏向JAVA的文章。對此,我刪除了一些文字,保持對C++適用。模塊化

 

面向對象的三個特性:封裝,繼承,多態。函數

特定的做用:封裝能夠隱藏實現細節,使得代碼模塊化;繼承能夠擴展已存在的代碼模塊(類);都屬於代碼重用。多態則是爲了實現接口重用。多態是爲了類在繼承和派生的時候,保證使用「家譜」中任一類的實例的某一屬性時的正確調用(我的理解:實際就是虛函數的做用)。編碼

 

1、封裝spa

1:封裝,是把客觀事物封裝成抽象概念的類。.net

2:須要注意的是,抽象的概念。指針

  1)一個錯誤例子。今天面試,面試官但願我對汽車進行封裝。我將車架和車進行封裝。他指出我是錯誤的,應該對輪胎自己進行封裝。回頭思考,發現對抽象的概念存在誤解。對象

  2)抽象:應該對事物的集合體進行抽象。例如人類能夠進行抽象,由於人類是人的集合體,有人類的共性。但不能對具體一我的進行抽象。由於個體是具體的,他不是一個集合體。。。固然,你總不能認爲人是細胞的集合體吧?blog

2、繼承
1:繼承,可使用現有類的全部功能,並在無需從新編寫原來的類的狀況下對這些功能進行擴展。繼承

2:繼承的過程,就是從通常到特殊的過程。

  1)例如:class 人類。 class 中國人:public 人類。 // 須要注意,此處不能使用具體人。具體人應該是一個對象,而不是一個類。

  2)在考慮使用繼承時,須要注意兩個類之間的關係應該是「屬於」關係。例如,Employee 是一我的,Manager 也是一我的,所以這兩個類均可以繼承 Person 類。可是 Leg 類卻不能繼承 Person 類,由於腿並非一我的。

經過繼承建立的新類稱爲「子類」或「派生類」。

被繼承的類稱爲「基類」、「父類」或「超類」。

要實現繼承,能夠經過「繼承」(Inheritance)和「組合」(Composition)來實現。

繼承概念的實現方式有三類:實現繼承、接口繼承。

Ø         實現繼承是指使用基類的屬性和方法而無需額外編碼的能力;

Ø         接口繼承是指僅使用屬性和方法的名稱、可是子類必須提供實現的能力;

3、多態

多態性(polymorphisn)是容許你將父對象設置成爲和一個或更多的他的子對象相等的技術,賦值以後,父對象就能夠根據當前賦值給它的子對象的特性以不一樣的方式運做。簡單的說,就是一句話:容許將子類類型的指針賦值給父類類型的指針。

對於多態,有兩種不一樣論點:編譯時綁定(重載)和運行時綁定(虛函數)。引用認爲,重載應該稱之爲語言特定,並不稱之爲多態。(對此,暫不作評論。

多態的常見實現方式有:虛函數,抽象類,重載,模版

相關文章
相關標籤/搜索