2011-09-23 26 views
21

我有一個從其他特徵實現的特質。所有這些特徵的覆蓋supertrait的行爲,是混合型的一類:現在如何訪問超類的多個特徵之一?

trait T { 
    def name = "t" 
} 
trait T1 extends T { 
    abstract override def name = "t1" 
} 
trait T2 extends T { 
    abstract override def name = "t2" 
} 
class C extends T with T1 with T2 { 
    def printName = super.name 
} 

,在C類我要訪問的行爲不是最後的混合式特徵,但一個行爲這些特徵。這可能嗎?

回答

26

有可能超通話專注於一個特定的特質:

class C extends T with T1 with T2 { 
    def printName = super[T1].name 
} 
+10

這僅僅是可能的,如果'T1'上面是一個直接超特質。 – axel22

+2

+1,神聖煙,永遠不知道這個功能! – missingfaktor

+0

問題和答案,由同一個人? – Nawaz

相關問題