Was ist der Unterschied zwischen den verschiedenen übergeordneten Methoden in Scala?

Mit Scala können Sie eine Methode auf zwei legale Arten überschreiben:

Super Klasse gegeben:

class A {
  def a = "A"
}

Wir können die Methode "a" überschreiben durch:

class B extends A {
  override def a = "B"
}

und

class B extends A {
  override def a() = "B"
}

beide scheinen die Methode "a" korrekt zu überschreiben. Welche gestalterische Entscheidung steckt dahinter? Warum darf "a ()" in B "a" in A überschreiben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage