国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

純繼承與擴展

2019-11-18 12:08:36
字體:
來源:轉載
供稿:網友

  學習繼續時,為了創建繼續分級結構,看來最明顯的方法是采取一種“純粹”的手段。也就是說,只有在基礎類或“接口”中已建立的方法才可在衍生類中被覆蓋,如下面這張圖所示:
  
 純繼續與擴展(圖一)


  可將其描述成一種純粹的“屬于”關系,因為一個類的接口已規定了它到底“是什么”或者“屬于什么”。通過繼續,可保證所有衍生類都只擁有基礎類的接口。假如按上述示意圖操作,衍生出來的類除了基礎類的接口之外,也不會再擁有其他什么。
  
  可將其想象成一種“純替換”,因為衍生類對象可為基礎類完美地替換掉。使用它們的時候,我們根本沒必要知道與子類有關的任何額外信息。如下所示:
  
 純繼續與擴展(圖二)

  也就是說,基礎類可接收我們發給衍生類的任何消息,因為兩者擁有完全一致的接口。我們要做的全部事情就是從衍生上溯造型,而且永遠不需要回過頭來檢查對象的準確類型是什么。所有細節都已通過多形性獲得了完美的控制。
  
  若按這種思路考慮問題,那么一個純粹的“屬于”關系似乎是唯一明智的設計方法,其他任何設計方法都會導致混亂不清的思路,而且在定義上存在很大的困難。但這種想法又屬于另一個極端。經過細致的研究,我們發現擴展接口對于一些特定問題來說是非凡有效的方案。可將其稱為“類似于”關系,因為擴展后的衍生類“類似于”基礎類——它們有相同的基礎接口——但它增加了一些特性,要求用額外的方法加以實現。如下所示:
  
 純繼續與擴展(圖三)

  盡管這是一種有用和明智的做法(由具體的環境決定),但它也有一個缺點:衍生類中對接口擴展的那一部分不可在基礎類中使用。所以一旦上溯造型,就不可再調用新方法:
  
純繼續與擴展(圖四)

  若在此時不進行上溯造型,則不會出現此類問題。但在許多情況下,都需要重新核實對象的準確類型,使自己能訪問那個類型的擴展方法。在后面的小節里,我們具體講述了這是如何實現的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大同县| 海宁市| 玛多县| 磴口县| 德令哈市| 托里县| 红河县| 阿鲁科尔沁旗| 花垣县| 嘉定区| 蒙自县| 禄劝| 南昌市| 桂林市| 南岸区| 沾化县| 汉川市| 秭归县| 达孜县| 英吉沙县| 基隆市| 安康市| 岳阳市| 双流县| 镇赉县| 行唐县| 阿克陶县| 容城县| 云浮市| 隆子县| 安乡县| 北川| 汝南县| 黔西| 海林市| 巴林左旗| 布拖县| 龙泉市| 仁寿县| 新巴尔虎左旗| 彩票|