0

「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 をインスタンス化しています。これは実際に正しいですか、それともここに何かが欠けていますか?

4

1 に答える 1

1

はい。それで合っています。AbstractElementのサブクラスとして定義された何らかのクラスが存在する必要がありますElement。これら 2 つのメソッドは、このクラスをインスタンス化し、新しくインスタンス化されたオブジェクトを返します。

于 2012-09-17T15:11:38.180 に答える