1. 程式人生 > >C++三大特性:封裝,繼承,多型

C++三大特性:封裝,繼承,多型

     封裝可以隱藏實現細節,使得程式碼模組化,繼承可以擴充套件已存在的模組,它們目的都是為了:程式碼重用。而多型是為了實現另一個目的:介面重用。

什麼是多型?

     eg:開門,開窗戶,開電腦,這裡“開”就是多型。
     多型性可以簡單概括為“一個介面,多種實現”,是通過虛擬函式實現的。基類提供一個虛介面,其派生類重寫這個介面,這樣就構成了多型。

面向物件———封裝(特性之一)
 封裝是面向物件的特徵之一,是物件和類概念的主要特性。封裝是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面。面向物件計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的物件,這些物件通過一個受保護的介面訪問其他物件。一旦定義了一個物件的特性,則有必要決定這些特性的可見性,即哪些特性對外部世界是可見的,哪些特性用於表示內部狀態。在這個階段定義物件的介面。通常,應禁止直接訪問一個物件的實際表示,而應通過操作介面訪問物件,這稱為資訊隱藏。事實上,資訊隱藏是使用者對封裝性的認識,封裝則為資訊隱藏提供支援。封裝保證了模組具有較好的獨立性,使得程式維護修改較為容易。對應用程式的修改僅限於類的內部,因而可以將應用程式修改帶來的影響減少到最低限度。

封裝:是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
封裝好處:

1.將變化隔離;

2.便於使用。

3.提高重用性。

4.提高安全性。

封裝原則:

將不需要對外提供的內容都隱藏起來。

把屬性都隱藏,提供公共方法對其訪問。

private:關鍵字

A:用於修飾成員變數和成員方法。

B:被修飾的內容在其他類中是不可以被訪問的。

注意:私有僅僅是封裝的一種體現而已。


面向物件———繼承(特性之二)

            繼承是一指一個物件從另一個物件獲得功能的過程,它提供了一種明確表述共性的方法。是一個不斷向上抽取的過程

例如:所有的Windows應用程式都有一個視窗,它們可以看作都是從一個視窗類派生出來的。但是有的應用程式用於文書處理,有的應用程式用於繪圖,這是由於派生出了不同的子類,各個子類添加了不同的特性。

繼承與封裝可以共同作用.如果一個給定的類封裝了某些屬性,它的任何子類將會繼承同樣得屬性,另加各個子類所有得特有屬性。

繼承優點:

1,提高了程式碼的複用性。

2,讓類與類之間產生了關係。有了這個關係,才有了多型的特性。

面向物件———多型(特性之三)

多型簡單說,就是某一類事物多種存在形態。例如,貓對應的型別是貓型別,但同時他也是動物中的一種,也可以把貓稱為動物。又比如,同樣的選擇編輯-貼上操作,在字處理程式和繪圖程式中有不同的效果。多型性包括引數化多型性和包含多型性。多型性語言具有靈活、抽象、行為共享、程式碼共享的優勢,很好的解決了應用程式函式擴充套件性。

1,多型的體現

父類的引用指向了自己的子類物件。

父類的引用也可以接收自己的子類物件。

2,多型的前提

必須是類與類之間有關係。要麼繼承,要麼實現。

通常還有一個前提:存在覆蓋。

3,多型的好處

多型的出現大大的提高程式的擴充套件性。

4,多型的弊端

提高了擴充套件性,但是隻能使用父類的引用訪問父類中的成員。
--------------------- 
作者:Doo66 
來源:CSDN 
原文:https://blog.csdn.net/doo66/article/details/52208922 
版權宣告:本文為博主原創文章,轉載請附上博文連結!