有更好的方法吗?
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
我用 B 扩展 A 并添加一个额外的成员变量。不用写就好了override val
在 x 之前。
我强烈建议不要从案例类继承。它对 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
http://www.scala-lang.org/node/3289 http://www.scala-lang.org/node/3289
http://www.scala-lang.org/node/1582 http://www.scala-lang.org/node/1582
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)