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