.基類和派生類關係
任何乙個類都有可以派生出上個新類,派生類也可以再派生出新類,因此,基類和派生類是相對而言的。乙個基類可以是另乙個基類的派生類,這樣便形成了複雜的繼承結構,出現了類的層次。乙個基類派生出乙個派生類,它又做另乙個派生類的基類,則原來基類為該派生類的間接基類。
基類與派生類之間的關係可以有如下幾種描述:
1 派生類是基類的具體化
類的層次通常反映了客觀世界中某種真實的模型。例如,定義輸入裝置為基類,而鍵盤、滑鼠器和數位化板將是派生類,它們關係如圖6-3所示,在這種情況下,不難看出:基類是對若於個派生類的抽象,而派生類是基類的具體化。基類抽取了它的派生類的公共牲,而派生類通過增加行為將抽象類變為某種有用的型別。
2 派生類是基類定義的延續
先定義乙個抽象基類,該基類中有些操作並未實現。然後定義非抽象的派生類,實現抽象基類中定義的操作。例如,虛函式就屬此類情況。這時,派生類是抽象的基類的實現,即可看成是基類定義的延續。這也是派生類的一種常用的方法。
3 派生類是基類的組合
在多繼承時,乙個派生類有多於乙個的基類,這時派生類將是所有基類行為的組合。如上述派生類風扇檯燈類就是基類風扇類和檯燈類的組合。
例題6-1
下面定義了乙個關於交通工具的類
class vehicle
float get_weight( )
float wheel_loading( )
};如果要再定義乙個小轎車的類和乙個卡車的類,如何實現呢?這裡我們就要用到物件導向程式設計的另乙個機制--繼承。現實世界的物質多種多樣,但許多物質都存在著層次關係,這種層次結構是我們找到了描述事物的解決方法。
下面通過繼承來派生出小汽車和卡車的類。
//小汽車的類
class car : public vehicle
};//卡車的類
class truck : public vehicle
};說明:上面通過繼承從類vehicle中派生出了car和truck兩個類。我們把vehicle稱為基類,把car和truck稱為派生類或子類
C 基類和派生類
本講討論基類和派生類的基本概念。通過繼承機制,可以利用已有的資料型別來定義新的資料型別。所定義的新的資料型別不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為派生類,又稱為子類。在c 語言中,乙個派生類可以從乙個基類派生,也可...
C 基類和派生類
本講討論基類和派生類的基本概念。通過繼承機制,可以利用已有的資料型別來定義新的資料型別。所定義的新的資料型別不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為派生類,又稱為子類。在 c 語言中,乙個派生類可以從乙個基類派生,也...
C 基類和派生類
通過繼承機制,可以利用已有的資料型別來定義新的資料型別。所定義的新的資料型別不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為派生類,又稱為子類。在c 語言中,乙個派生類可以從乙個基類派生,也可以從多個基類派生。從乙個基類派生...