Is there a nicer way of doing this?
scala> case class A(x : Int)
defined class A
scala> case class B(override val x : Int, y : Int) extends A(x)
defined class B
I'm extending A with B and adding an extra member variable. It would be nice not to have to write override val
before the x.
I would strongly advise not to inherit from a case class. It has surprising effects on equals and hashCode, and has been deprecated in Scala 2.8.
Instead, define x
in a trait or an abstract class.
scala> trait A { val x: Int }
defined trait A
scala> case class B(val x: Int, y: Int) extends A
defined class B
http://www.scala-lang.org/node/3289
http://www.scala-lang.org/node/1582