这样做有更好的方法吗?
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
Run Code Online (Sandbox Code Playgroud)
我用B扩展A并添加一个额外的成员变量.不要override val在x之前写字会很好.
ret*_*nym 15
我强烈建议不要从案例类继承.它对equals和hashCode产生了惊人的影响,并且在Scala 2.8中已被弃用.
相反,x在特征或抽象类中定义.
scala> trait A { val x: Int }
defined trait A
scala> case class B(val x: Int, y: Int) extends A
defined class B
Run Code Online (Sandbox Code Playgroud)
http://www.scala-lang.org/node/3289
http://www.scala-lang.org/node/1582