論組合與繼承

2021-04-14 01:46:31 字數 625 閱讀 2806

一 ,首先說明乙個術語 「向上轉型」,什麼是 「向上轉型」 ?我們可以看乙個繼承圖:

從上圖可以看到,wind 類的繼承於 instrument類。當由匯出類轉型成基類的時候,在繼承圖上是向上移動的,因此一般稱為向上轉型。由於向上轉型是從乙個較為專用的型別向通用型別的轉換,所以來說,是比較安全的。也就是說,匯出類是基類的乙個超集。它可能不基類含有更多的方法,但它必須而且至少含有具備基類中所含有的方法。在向上轉型的過程當中,類介面中唯一可能發生的事情是丟失方法,而不是獲取他們。這就是為什麼編譯器在「未曾明確表示轉型」 或者 「未曾指定特殊標記」的情況下,任然允許向上轉型的原因。

也可以執行與向上轉型相反的「向下轉型」。

二 ,論 組合與繼承

在物件導向程式設計當中,生成和使用程式**最有可能採用的方法就是直接將資料和方法包裝進乙個類裡面去,並使用該類的物件。也可以運用組合技術使用現有的類來開發新的類;而繼承技術其實並不太常用。因此,我們在學習oop的過程當中,雖然多次強調繼承,但這並不意味著要盡可能的使用它。相反,應當慎用這一技術,其使用的場合僅僅限於你確信使用該技術確實有效的情況,到底是用組合還是繼承,乙個最清晰的方法是問一問自己是否需要從新類想基類進行向上轉型。如果必須要向上轉型,則繼承是必須的;否則,應該好好考慮是不是需要繼承。

繼承與組合

題目描述 已知類如下 1 birthdate 生日類 含有 year,month,day 等資料成員 2 teacher 教師類 含有 num,name,等資料成員 3 professor 教授類 含有 教師類和生日類的資料成員 要求 1 通過對teacher和birthdate使用繼承和組合的方式...

繼承與組合

繼承與組合 繼承是實現類重用的重要手段,但繼承有乙個最大的壞處 就是破壞封裝,相比之下,組合也是實現類重用的重要方式,而採用組合方式來實現類重用則能提供更好的封裝性。繼承特點 繼承子類擴充套件,得到父類的屬性和方法。許可權允許的情況,子類可以直接訪問父類的屬性和方法,極大的破壞了封裝的特性 從而造成...

繼承與組合

1繼承與組合的含義 待看 組合 在其內部間資料內內型 繼承 這個新類很像原來的類 2 建構函式初始化 新類沒有權利訪問這個子類物件的私有成員,所以不能初始化。3 對子物件呼叫建構函式,建構函式初始化列表。4 成員物件初始化 5組合和繼承的聯合 6 建構函式和析構函式呼叫的次序 7 名字隱藏 繼承乙個...