调用超类构造器
现在你有了两个类组成的完整系统:抽象类Element,和扩展它的具体类 ArrayElement。或许你还在设想其它表达元素的方式。比方说,客户或许想要创造由给定单行字串构成 的布局元素。面向对象编程让使用新数据变体扩展系统变得容易。只要加入子类即可。例如,代码10.6 展示了扩展ArrayElement的LineElement类:
class LineElement(s: String) extends ArrayElement(Array(s)) { override def width = s.length override def height = 1 }
代码 10.6 调用超类构造器
由于LineElement扩展了ArrayElement,并且 ArrayElement的构造器带一个参数(Array[String]),LineElement需要传递一个参数到它的超类的主 构造器。要调用超类构造器,只要把你要传递的参数或参数列表放在超类名之后的括号里即可。例如, 类LineElement传递了Array(s)到ArrayElement的主构造器,把它放在超类ArrayElement的名称后面的括 号里:
... extends ArrayElement(Array(s)) ...
有了新的子类,布局元素的继 承级别现在看起来就像展示在图释10.2中的那样了。
图释 10.2 LineElement的类关系图
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索参数
, array
, 元素
, 子类
, override
构造器
,以便于您获取更多的相关知识。