面向對象編程的主要目的之一就是提供可重用的代碼,強調可重用性。當我們在面臨一個大的工程的時候,一般都會重用以前的代碼,首先我們使用現有的代碼可以節省編碼時間,我們稱重復的編碼為重復的造輪子,重復的代碼已經經過了測試,有利于我們避免向程序中引入錯誤,讓我們的時間不必拘泥于這些細節。
使用C語言進行編程時,可以使用C標準的各種函數。C++提供更高層次的重用,如類庫。
通過繼承可以完成以下工作:
1.可以獲得已有類的各種功能;
2.可以給新類添加功能,擴展原有功能;
3.可以修改原有的行為。
C++中所謂繼承就是在一個已經存在類的基礎之上建立一個新的類。已存在的類被稱為基類、父類或超類。新建立的類被稱為派生類或子類。一個新類從已有的類中獲得已有類的特征,這被稱為類的繼承。通過繼承子類從父類獲得父類的特性。從已有的類產生一個新的子類,成為類的派生。派生類繼承了基類所有的數據成員和方法,并且可以增加自己的數據成員和方法。一個基類可以派生出去很多個派生類,每個派生類又可以作為基類再派生出新的派生類。如此進行下去,形成了類的繼承層次結構。
派生與繼承的實現
1.派生類的聲明方式
從一個基類派生一個類的一般格式為:
class ClassName: Access BaseClassName
{ Access包括三種繼承方式:private,public,protected,BaseClassName為父類的名字
private:
......;//私有成員說明
public:
......;//公有成員說明
protected:
......;//保護成員說明
};
Access表示繼承方式:
public:表示公有繼承,在派生類和類外可以使用;
private:表示私有繼承,在派生類中使用;
protected:表示保護繼承,只能由類內部使用。
2.派生類說明
public派生:基類中所有成員在派生類中保持各個成員的訪問權限,公有的和受保護的成員依舊保持它們的訪問權限,而基類的私有成員子類是無法訪問的。
private派生:基類中公有成員和保護成員在派生類中均變為私有的,在派生類中仍可直接使用這些成員,基類中的私有成員,在派生類中不可直接使用。
protected派生:protected對派生類的對象而言,是公開成員,可以訪問。保護派生時,基類中公有成員和保護成員在派生類中均變為保護的和私有的,在派生類中仍可直接使用這些成員,基類中的私有成員,在派生類中不可直接使用。
實際使用中public繼承最為常用,其他兩種不常用。但大家要知道有這兩種繼承方式。
3.派生類的構成
派生類的成員包括從基類繼承的成員和自己增加的新的成員兩部分。
從基類獲得的成員體現了派生類從基類繼承而獲得的共性,新增加的成員體現了派生類的個性。不同派生類之間的區別就是這些由新添加的成員導致。
4.派生類的構造函數和析構函數
構造函數不能被繼承,派生類的構造函數必須調用基類的構造函數來初始化基類成員。
派生類構造函數的調用順序如下:
基類的構造函數(若沒有顯式定義構造函數則使用編譯器自動生成的默認構造函數,默認構造函數內部會調用基類或數據成員為類類型的成員的構造函數)。
原文鏈接:http://www.maiziedu.com/wiki/cplus/inherit/