the code goes here:
abstract class Element {
def contents: Array[String]
val height = contents.length
val width = if(height ==0 ) 0 else contents(0).length
override def toString = contents(0)
}
class ArrayElement(override val contents: Array[String]) extends Element
class LineElementT(s: String) extends Element {
override def contents = Array(s)
}
class LineElementF(s: String) extends Element {
override val contents = Array(s)
}
these three sub-classes are OK except the LineElementF
, which throws an NullPointerException
when creating instance with val lef = new LineElementF("Wrong")