Tôi muốn sử dụng stackable trait pattern với các đối tượng singleton, nhưng tôi dường như không thể tìm thấy làm thế nào để làm cho trình biên dịch hạnh phúc:Mẫu có thể xếp chồng có thể xếp chồng được sử dụng với các đối tượng đơn lẻ không?
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")
}
Đang cố gắng để đánh giá này trong repl sản xuất các lỗi sau:
<console>:10: error: overriding method pr in trait PrePostPr of type()Unit;
method pr needs `override' modifier
def pr() = println("Foo")
Ah, cảm ơn lời giải thích! – srparish
Có vẻ như nó là tốt để sử dụng cùng một tên, vì vậy tôi có thể đặt tên cho lớp "Foo" và sau đó có đối tượng "Foo" mở rộng lớp "Foo". – srparish
Vâng, đó là - trong trường hợp đó đối tượng 'Foo' được gọi là đối tượng đồng hành của lớp' Foo'. – axel22