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?