Различия при переопределении унаследованных полей конструктора?

Рассмотрим этот простой класс Scala:

class A(val d: Int)

Есть ли разница в Scala (в поведении или сгенерированном байт-код) между

class B(d: Int) extends A(d)

и

class B(override val d: Int) extends A(d)

или оба эквивалентны? Если они разные, каков будет конкретный вариант использования для каждого из них?

Было бы иначе, если бы A был определен как класс A (var d: Int) ?

7
задан soc 11 July 2011 в 22:05
поделиться