Jaka jest różnica między różnymi metodami nadrzędnymi w Scali?

Scala pozwala zastąpić metodę na dwa sposoby prawne:

Biorąc pod uwagę super klasę:

class A {
  def a = "A"
}

Możemy zastąpić metodę „a” przez:

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

i

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

oba wydają się poprawnie zastępować metodę „a”. Jaka jest decyzja projektowa? Dlaczego zezwolić na „a ()” w B, aby zastąpić „a” w A?

questionAnswers(1)

yourAnswerToTheQuestion