title: Differences when overriding inherited constructor fields?
body: <p>Consider this simple Scala class:</p>
  
  <pre><code>class A(val d: Int)
  </code></pre>
  
  <p>Is there a difference in Scala (either in behaviour or generated bytecode) between</p>
  
  <pre><code>class B(d: Int) extends A(d)
  </code></pre>
  
  <p>and</p>
  
  <pre><code>class B(override val d: Int) extends A(d)
  </code></pre>
  
  <p>or are both equivalent? If they are different, what would be the specific usecase for each of them?</p>
  
  <p>Would it be different if <code>A</code> was defined as <code>class A(var d: Int)</code>?</p>