鍍金池/ 教程/ Scala/ 組合和繼承–調(diào)用基類構(gòu)造函數(shù)
包對象
Ordered Trait
組合和繼承–定義 final 成員
基本數(shù)據(jù)類型
Match 表達式
類和對象 (三)
操作基本數(shù)據(jù)類型
for 表達式
組合和繼承–重載成員函數(shù)和方法
類和對象 (二)
組合和繼承–定義 factory 對象
組合和繼承–多態(tài)和動態(tài)綁定
Trait 的基本概念
if 表達式
組合和繼承–抽象類
函數(shù)–函數(shù)字面量的一些簡化寫法
while 循環(huán)
組合和繼承–使用組合還是繼承?
訪問控制修飾符
Trait 示例–Rectangular 對象
組合和繼承–定義參數(shù)化成員變量
組合和繼承–定義無參數(shù)方法
類和對象 (一)
函數(shù)–閉包
函數(shù)–類成員函數(shù)
Scala 基本數(shù)據(jù)類型的實現(xiàn)方法
try 表達式處理異常
選擇瘦接口還是胖接口設(shè)計?
組合和繼承–小結(jié)
創(chuàng)建新的控制結(jié)構(gòu)
使用 import
為訪問控制修飾符添加作用域
Scala 的類層次關(guān)系
類和對象 (五)
傳名參數(shù)
柯里化函數(shù)
函數(shù)–頭等公民
組合和組合和繼承–定義 heighten 和 widen 函數(shù)
使用 Package–將代碼放入包中
隱含的 import
所有類的公共子類–底層類型
進一步 Scala
函數(shù)–局部函數(shù)
引用包中的代碼
組合和繼承–使用 override 修飾符
組合和繼承–實現(xiàn)類 Element 的 above,beside 和 toString()方法
類和對象 (四)
函數(shù)–尾遞歸
沒有“break”和“continue”的日子
組合和繼承–調(diào)用基類構(gòu)造函數(shù)
減低代碼重復(fù)
函數(shù)–函數(shù)–可變參數(shù),命名參數(shù),缺省參數(shù)
起步 Scala
組合和繼承–擴展類
函數(shù)–部分應(yīng)用的函數(shù)
開始神奇的 Scala編程之旅
組合和繼承–概述
Trait 用來實現(xiàn)可疊加的修改操作

組合和繼承–調(diào)用基類構(gòu)造函數(shù)

前面我們定義了兩個類,一個為抽象類 Element ,另外一個為派生的實類 ArrayElement。 或許你打算再構(gòu)造一個新類,這個類使用單個字符串來構(gòu)造布局元素,使用面向?qū)ο蟮木幊谭椒ㄊ沟脴?gòu)造這種新類非常容易。比如下面的 LineElement 類:

class LineElement(s:String) extends ArrayElement(Array(s)) {
  override def width = s.length
  override def height = 1
}

由于 LineElement 擴展了 ArrayElement,并且 ArrayElement 的構(gòu)造器帶一個參數(shù)(Array[String]),LineElement 需要傳遞一個參數(shù)到它的基類的主構(gòu)造器。要調(diào)用基類構(gòu)造器,只要把你要傳遞的參數(shù)或參數(shù)列表放在基類名之后的括號里即可。例如,類 LineElement 傳遞了 Array(s)到 ArrayElement 的主構(gòu)造器,把它放在基類 ArrayElement 的名稱后面的括號里:

... extends ArrayElement(Array(s)) ...

有了新的子類,布局元素的繼承級別現(xiàn)在看起來就如下圖所示:

http://wiki.jikexueyuan.com/project/scala-development-guide/images/12.png" alt="" />