C 物件之間的關係與繼承

2022-05-24 02:00:07 字數 755 閱讀 5563

派生類和基類之間的特殊關係是基於c++繼承的底層模型的。

實際上,c++有3種繼承方式:公有繼承保護繼承私有繼承

公有繼承是最常見的關係,它建立一種is-a的關係,即派生類物件也是一種基類,可以對基類物件執行的任何操作,也可以對派生類物件執行。is-a其實是is-a-kind-of的縮寫。

has-a關係:午餐可能包含水果,但是午餐不是水果。所以從fruit類派生出的lunch類來在午餐中新增水果。在午餐中加入水果的正確方法是將其作為一種has-a關係:午餐有水果。建模方式就是:將fruit物件作為lunch類的資料成員。

is-like-a關係:律師像鯊魚,但是律師不是鯊魚。鯊魚可以再水下生活,所以shark類不能派生出lawyer類。繼承可以再基類的基礎上新增屬性, 但不能刪除基類的屬性。有些情況下,可設計包含共有特徵的類,然後以is-a或has-a關係,在這個類的基礎上定義相關的類。

use-a關係:計算機可以使用雷射印表機,但從computer類派生出printer類是沒有意義的。然而可以使用友元函式或類來處理printer物件和computer物件之間的通訊。

公有繼承還是只是用來建立is-a的關係比較好。

物件導向之繼承(類與類之間的關係)

繼承 類與類之間的關係 父子關係 子類繼承父類,那麼子類就擁有父類的公共屬性和方法 乙個子類只能繼承乙個父類,乙個父類可以有好多子類 子類物件可以直接轉成父類,但父類只能轉回對應的子類 如果子類轉成父類之後,父類物件就不能點出子類裡面的屬性和方法使用了 c 允許乙個類繼承其他類的屬性和方法,別繼承的...

物件之間的關係

下面以物件間的耦合度和關係的強弱性的由低到高進行描述 依賴 dependency 物件之間最弱的一種關聯方式,是臨時性的關聯。中一般指由區域性變數 函式引數 返回值建立的對於其他物件的呼叫關係。圖 依賴關係 1 就是乙個物件呼叫被依賴物件中的某些方法而得以完成這個物件的一些職責 2 這是一種比較鬆散...

物件之間的關係

依賴 dependency 物件之間最弱的一種關聯方式,是臨時性的關聯。中一般指由區域性變數 函式引數 返回值建立的對於其他物件的呼叫關係 關聯 association 物件之間一種引用關係,比如客戶類與訂單類之間的關係。這種關係通常使用類的屬性表達。指乙個類指到另乙個類中的屬性.而且是長期的 不帶...