dd

Scala开发教程(35): 组合和继承–调用基类构造函数

jerry Scala 2015年11月25日 收藏

前面我们定义了两个类,一个为抽象类Element ,另外一个为派生的实类ArrayElement. 或许你打算再构造一个新类,这个类使用单个字符串来构造布局元素,使用面向对象的编程方法使得构造这种新类非常容易。比如下面的LineElement类:

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

由于LineElement扩展了ArrayElement,并且ArrayElement的构造器带一个参数(Array[String]),LineElement需要传递一个参数到它的基类的主构造器。要调用基类构造器,只要把你要传递的参数或参数列表放在基类名之后的括号里即可。例如,类LineElement传递了Array(s)到ArrayElement的主构造器,把它放在基类ArrayElement的名称后面的括号里:

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

有了新的子类,布局元素的继承级别现在看起来就如下图所示:

20131113002

dd