「Scala でのプログラミング」の第 10 章 (構成と継承) を読んでいましたが、コード リスト 10.9 に少し混乱しています。著者は、次のようなコード リストを持っています。
abstract class Element{
def contents:Array[String]
def width: Int = if(height==0)0elsecontents(0).length
def height: Int = contents.length
def above(that: Element): Element =
new ArrayElement(this.contents ++ that.contents)
def beside(that: Element): Element=
new ArrayElement(
for(
(line1, line2)<-this.contents zip that.contents
) yield line1+line2
)
override def toString = contents mkString "\n"
}
私の混乱は、メソッド「上」と「横」にあります。これらのメソッドは、抽象基本クラス Element からサブクラス ArrayElement をインスタンス化しています。これは実際に正しいですか、それともここに何かが欠けていますか?