考慮以下幾點:覆蓋爲final類性狀方法斯卡拉
trait TestTrait {
def doStuff()
}
final class TestClass {
// ...
}
我想實例化實現的特質方法的TestClass的一個實例。以下不編譯:
// Illegal inheritance from final class TestClass
val t = new TestClass with TestTrait {
def doStuff() {
println("doing stuff")
}
}
這是有道理的,因爲創建的匿名類將擴展最終的類。我真正追求的是一個匿名實現混入最終課程實例的特質。
以下的工作,但似乎有點迂迴。有沒有辦法直接做到這一點,沒有宣佈的特質實施?
trait TestTraitImpl extends TestTrait {
def doStuff() {
println("doing stuff")
}
}
val t = new TestClass with TestTraitImpl
我很困惑:問題說「下面的作品」,但它不起作用(即使OP的答案也表示它不)。 – Suma