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

2018-09-28 18:26 更新

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

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

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

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

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

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)