前面我們定義了兩個類,一個為抽象類 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="" />