8
Chciałbym użyć stackable trait pattern z pojedynczych obiektów, ale nie wydaje się znaleźć sposób, aby kompilator szczęśliwa:Czy wzór pojedynczej cechy może być używany z obiektami singleton?
abstract class Pr {
def pr()
}
trait PrePostPr extends Pr {
abstract override def pr() {
println("prepr")
super.pr()
println("postpr")
}
}
object Foo extends Pr with PrePostPr {
def pr() = println("Foo")
}
Próbując ocenić to w repl produkuje następujący błąd:
<console>:10: error: overriding method pr in trait PrePostPr of type()Unit;
method pr needs `override' modifier
def pr() = println("Foo")
Ah, dzięki za wyjaśnienie! – srparish
Wydaje się, że dobrze jest używać tej samej nazwy, więc mogę nazwać klasę "Foo", a następnie obiekt "Foo" przedłużyć klasę "Foo". – srparish
Tak, jest - w takim przypadku obiekt 'Foo' jest nazywany obiektem towarzyszącym klasy' Foo'. – axel22