學習繼承時,為了創(chuàng)建繼承分級結(jié)構(gòu),看來最明顯的方法是采取一種“純粹”的手段。也就是說,只有在基
礎類或“接口”中已建立的方法才可在衍生類中被覆蓋
可將其描述成一種純粹的“屬于”關系,因為一個類的接口已規(guī)定了它到底“是什么”或者“屬于什么”。
通過繼承,可保證所有衍生類都只擁有基礎類的接口。如果按上述示意圖操作,衍生出來的類除了基礎類的
接口之外,也不會再擁有其他什么。
可將其想象成一種“純替換”,因為衍生類對象可為基礎類完美地替換掉。使用它們的時候,我們根本沒必
要知道與子類有關的任何額外信息
也就是說,基礎類可接收我們發(fā)給衍生類的任何消息,因為兩者擁有完全一致的接口。我們要做的全部事情
就是從衍生上溯造型,而且永遠不需要回過頭來檢查對象的準確類型是什么。所有細節(jié)都已通過多形性獲得
了完美的控制。
若按這種思路考慮問題,那么一個純粹的“屬于”關系似乎是唯一明智的設計方法,其他任何設計方法都會
導致混亂不清的思路,而且在定義上存在很大的困難。但這種想法又屬于另一個極端。經(jīng)過細致的研究,我
們發(fā)現(xiàn)擴展接口對于一些特定問題來說是特別有效的方案?蓪⑵浞Q為“類似于”關系,因為擴展后的衍生
類“類似于”基礎類——它們有相同的基礎接口——但它增加了一些特性,要求用額外的方法加以實現(xiàn)
盡管這是一種有用和明智的做法(由具體的環(huán)境決定),但它也有一個缺點:衍生類中對接口擴展的那一部
分不可在基礎類中使用。所以一旦上溯造型,就不可再調(diào)用新方法:
若在此時不進行上溯造型,則不會出現(xiàn)此類問題。但在許多情況下,都需要重新核實對象的準確類型,使自
己能訪問那個類型的擴展方法。在后面的小節(jié)里,我們具體講述了這是如何實現(xiàn)的。 本文出自:億恩科技【mszdt.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|