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

2022-07-07 13:48:17 字數 2685 閱讀 3928

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

封裝

定義:封裝就是將抽象得到的資料和行為相結合,形成乙個有機的整體,也就是將資料與運算元據的源**進行有機的結合,形成類,其中資料和函式都是類的成員,目的在於將物件的使用者和設計者分開,

以提高軟體的可維護性和可修改性

特性:1. 結合性,即是將屬性和方法結合    2. 資訊隱蔽性,利用介面機制隱蔽內部實現細節,只留下介面給外界呼叫    3. 實現**重用

繼承

定義:繼承就是新類從已有類那裡得到已有的特性。 類的派生指的是從已有類產生新類的過程。原有的類成為基類或父類,產生的新類稱為派生類或子類,

子類繼承基類後,可以建立子類物件來呼叫基類函式,變數等

單一繼承:繼承乙個父類,這種繼承稱為單一繼承,一般情況盡量使用單一繼承,使用多重繼承容易造成混亂易出問題

多重繼承:繼承多個父類,類與類之間要用逗號隔開,類名之前要有繼承許可權,假使兩個或兩個基類都有某變數或函式,在子類中呼叫時需要加類名限定符如c.a::i = 1;

菱形繼承:多重繼承摻雜隔代繼承1-n-1模式,此時需要用到虛繼承,例如 b,c虛擬繼承於a,d再多重繼承b,c,否則會出錯

繼承許可權:繼承方式規定了如何訪問繼承的基類的成員。繼承方式指定了派生類成員以及類外物件對於從基類繼承來的成員的訪問許可權

繼承許可權:子類繼承基類除構造和析構函式以外的所有成員

繼承可以擴充套件已存在的**,目的也是為了**重用

繼承也分為介面繼承和實現繼承:

普通成員函式的介面總是會被繼承:  子類繼承乙份介面和乙份強制實現

普通虛函式被子類重寫     :  子類繼承乙份介面和乙份預設實現

純虛函式只能被子類繼承介面  :  子類繼承乙份介面,沒有繼承實現

訪問許可權圖如下:

為了便於理解,偽**如下,注意這個例子編譯是不過的,僅是為了可以更簡潔的說明繼承許可權的作用: 

class animal    //父類

public:

void eat();

class fish:public animal    //子類

public:

void test()                   //注:只有當此類希望成為 基類時才會打算宣告乙個虛析構函式,否則不必要給此類宣告乙個虛函式

學習無他法,唯有持之以恆

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

封裝

定義:封裝就是將抽象得到的資料和行為相結合,形成乙個有機的整體,也就是將資料與運算元據的源**進行有機的結合,形成類,其中資料和函式都是類的成員,目的在於將物件的使用者和設計者分開,

以提高軟體的可維護性和可修改性

特性:1. 結合性,即是將屬性和方法結合    2. 資訊隱蔽性,利用介面機制隱蔽內部實現細節,只留下介面給外界呼叫    3. 實現**重用

繼承

定義:繼承就是新類從已有類那裡得到已有的特性。 類的派生指的是從已有類產生新類的過程。原有的類成為基類或父類,產生的新類稱為派生類或子類,

子類繼承基類後,可以建立子類物件來呼叫基類函式,變數等

單一繼承:繼承乙個父類,這種繼承稱為單一繼承,一般情況盡量使用單一繼承,使用多重繼承容易造成混亂易出問題

多重繼承:繼承多個父類,類與類之間要用逗號隔開,類名之前要有繼承許可權,假使兩個或兩個基類都有某變數或函式,在子類中呼叫時需要加類名限定符如c.a::i = 1;

菱形繼承:多重繼承摻雜隔代繼承1-n-1模式,此時需要用到虛繼承,例如 b,c虛擬繼承於a,d再多重繼承b,c,否則會出錯

繼承許可權:繼承方式規定了如何訪問繼承的基類的成員。繼承方式指定了派生類成員以及類外物件對於從基類繼承來的成員的訪問許可權

繼承許可權:子類繼承基類除構造和析構函式以外的所有成員

繼承可以擴充套件已存在的**,目的也是為了**重用

繼承也分為介面繼承和實現繼承:

普通成員函式的介面總是會被繼承:  子類繼承乙份介面和乙份強制實現

普通虛函式被子類重寫     :  子類繼承乙份介面和乙份預設實現

純虛函式只能被子類繼承介面  :  子類繼承乙份介面,沒有繼承實現

訪問許可權圖如下:

為了便於理解,偽**如下,注意這個例子編譯是不過的,僅是為了可以更簡潔的說明繼承許可權的作用: 

class animal    //父類

public:

void eat();

class fish:public animal    //子類

public:

void test()                   //注:只有當此類希望成為 基類時才會打算宣告乙個虛析構函式,否則不必要給此類宣告乙個虛函式

三大特性 封裝,繼承,多型

重寫方法的規則 1 引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是過載。2 返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載。3 訪問修飾符的限制一定要大於被重寫方法的訪問修飾符 public protected default private 4 重寫方法一定...

三大特性 封裝 繼承 多型

物件導向的三大特性 封裝,繼承,多型 封裝 物件的便捷對物件的內部起到保護作用 資料隱藏 四種訪問修飾符 public公開 可以繼承 default本類和同包可以訪問 如果乙個屬性既不是public也不是private 那就預設是default 同包的子類可以繼承 private私有 只能在本類內部...

C 的三大特性 封裝 繼承 多型

多型的這個概念稍微有點模糊,如果想在一開始就想用清晰用語言描述它,讓讀者能夠明白,似乎不太現實,所以我們先看如下 例程 include using namespace std class vehicle void showmember void showmember virtual void sho...