日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Scala學(xué)習(xí):使用組合與繼承

組合與繼承是利用其它現(xiàn)存類定義新類的兩個方法。如果你接下來的工作主要是代碼重用,通常你應(yīng)采用組合而不是繼承。只有繼承受脆基類問題之苦,這種情況你可能會無意中通過改變超類而破壞了子類。

網(wǎng)頁設(shè)計(jì)是網(wǎng)站建設(shè)的前奏,好的網(wǎng)頁設(shè)計(jì)更深度的剖析產(chǎn)品和設(shè)計(jì)風(fēng)格定位,結(jié)合最新的網(wǎng)頁設(shè)計(jì)流行趨勢,與WVI應(yīng)用標(biāo)準(zhǔn),設(shè)計(jì)出具企業(yè)表現(xiàn)力,大器而深穩(wěn)的網(wǎng)站界面設(shè)。創(chuàng)新互聯(lián)公司公司2013年成立,是成都網(wǎng)站建設(shè)公司:提供企業(yè)網(wǎng)站設(shè)計(jì),品牌網(wǎng)站建設(shè),營銷型企業(yè)網(wǎng)站建設(shè)方案,成都響應(yīng)式網(wǎng)站建設(shè),成都微信小程序,專業(yè)建站公司做網(wǎng)站。

編輯推薦:Scala編程語言專題

關(guān)于繼承關(guān)系你可以問自己一個問題,是否它建模了一個is-a關(guān)系。Meyers,《Effective C++》 【Mey91】例如,說ArrayElement是Element是合理的。你能問的另一個問題是,是否客戶想要把子類類型當(dāng)作超類類型來用。Eckel,《Thinking in Java》【Eck98】在ArrayElement的例子里,我們的確期待客戶會想要把ArrayElement當(dāng)作Element使用。

如果你對展示在圖釋10.3的繼承關(guān)系問了這些的問題,那么是否感覺其中的任何關(guān)系有可疑嗎?尤其是,對你來說LineElement是ArrayElement是否顯而易見呢?你是否認(rèn)為客戶會需要把LineElement當(dāng)作ArrayElement使用?實(shí)際上,我們把LineElement定義為ArrayElement主要是想重用ArrayElement的contents定義。因此或許把LineElement定義為Element的直接子類會更好一些,就像這樣:

 
 
 
 
  1. class LineElement(s: String) extends Element {
  2.  val contents = Array(s)
  3.  override def width = s.length
  4.  override def height = 1
  5. }

前一個版本中,LineElement與ArrayElement有一個繼承關(guān)系,從那里繼承了contents?,F(xiàn)在它與Array有一個組合關(guān)系:在它自己的contents字段中持有一個字串?dāng)?shù)組的引用。
類ArrayElement也與Array有組合關(guān)系,因?yàn)樗膮?shù)化contents字段持有字串?dāng)?shù)組的引用。ArrayElement的代碼展示在第xx頁的代碼10.5中。其組合關(guān)系用一個菱形表現(xiàn)在類圖中,正如展示在第xx頁的圖釋10.1中那樣。有了LineElement的這個實(shí)現(xiàn),Element的繼承層級現(xiàn)在看上去如展示在圖釋10.4中那樣。

圖釋 10.4 修改了LineElement后的類層級

【相關(guān)閱讀】

  1. 在Scala中定義final成員
  2. Scala程序中如何實(shí)現(xiàn)多態(tài)和動態(tài)綁定
  3. Scala學(xué)習(xí):調(diào)用超類構(gòu)造器和override修飾符的使用
  4. Scala:重載方法和字段及定義參數(shù)化字段
  5. Scala程序中的擴(kuò)展類

分享題目:Scala學(xué)習(xí):使用組合與繼承
文章鏈接:http://www.5511xx.com/article/djegged.html