以下錯誤消息是什麼意思?如果沒有第三個成員被第二個成員覆蓋,則不能覆蓋具體成員
不能覆蓋混凝土構件 未經第三構件這是 由兩個覆蓋(該規則 設計成防止``意外 覆蓋「」);
我試圖做堆疊性狀修改。這是有點後,因爲我已經有了一個層次結構,我試圖修改行爲,而不必重寫很多代碼。
我有一個名爲AbstractProcessor一個基類,定義類的抽象方法是這樣的:
abstract class AbstractProcessor {
def onPush(i:Info): Unit
}
我有一對夫婦的現有特點,實施不同的onPush行爲。
trait Pass1 {
def onPush(i:Info): Unit = { /* stuff */ }
}
trait Pass2 {
def onPush(i:Info): Unit = { /* stuff */ }
}
所以,讓我用new AbstractProcessor with Pass1
或new AbstractProcessor with Pass2
。
現在我想在pass1和pass2的onPush調用之前和之後做一些處理,同時儘量減少對AbstractProcessor和Pass1和Pass2的代碼更改。我想創造一個特點,做這樣的事情的:
trait Custom extends AbstractProcessor {
abstract override def onPush(i:Info): Unit = {
// do stuff before
super.onPush(i)
// do stuff after
}
}
,並用它與new AbstractProcessor with Pass1 with Custom
和我得到的錯誤消息。
當我得到你的答案時,我想出了我可以爲onPush創建一個特性,並且讓所有的東西都得到擴展。我想我被「第三」一詞弄糊塗了。我想知道,如果沒有兩個都被重寫的基礎成員,會給出更好的線索。 – huynhjl 2010-04-09 13:27:33