Производный класс случая Scala с теми же переменными-членами, что и базовый - PullRequest
9 голосов
/ 13 января 2010

Есть ли лучший способ сделать это?

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

Я расширяю A на B и добавляю дополнительную переменную-член. Было бы неплохо не писать override val до х.

1 Ответ

15 голосов
/ 13 января 2010

Я бы настоятельно советовал не наследовать от класса дела. Он имеет удивительное влияние на 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 / узел / 3289

http://www.scala -lang.org / узел / 1582

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...