2014-05-11 119 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感谢您的链接;那真不幸;无论如何,你可以将它作为答案吗? –

回答