2014-05-11 191 views
0

我想在父類的父級上調用方法。我幾乎可以肯定這是可能的,但下面產生一個錯誤:訪問超級超類中的方法

import javax.swing.undo._ 

def test(name: String): CompoundEdit = new CompoundEdit { 
    override def getPresentationName : String = name 

    override def getUndoPresentationName: String = 
    super[AbstractUndoableEdit].getUndoPresentationName 

    override def getRedoPresentationName: String = 
    super[AbstractUndoableEdit].getRedoPresentationName 
} 

編譯器說AbstractUndoableEdit不是一個父類的CompoundEdit(這是wrong):

<console>:55: error: AbstractUndoableEdit does not name a parent class of <$anon: javax.swing.undo.CompoundEdit> 
     override def getUndoPresentationName: String = super[AbstractUndoableEdit].getUndoPresentationName 
                 ^
<console>:56: error: AbstractUndoableEdit does not name a parent class of <$anon: javax.swing.undo.CompoundEdit> 
     override def getRedoPresentationName: String = super[AbstractUndoableEdit].getRedoPresentationName 
                 ^
+0

其實我覺得這是不可能的。看到這個問題的答案http://stackoverflow.com/questions/8028627/select-certain-super-class-for-method-call-in-scala – lpiepiora

+0

@lpiepiora感謝您的鏈接;那真不幸;無論如何,你可以將它作爲答案嗎? –

回答