如何从Kotlin的内部类调用外部类的超级方法?

什么是Java的OuterClass.super.method()的Kotlin等价物?

示例(Java):

 class Outer { class Inner { void someMethod() { Outer.super.someOtherMethod(); } } @Override public String someOtherMethod() { // This is not called... } } 

使用super@OuterClass.method()语法:

 open class C { open fun f() { println("Cf()") } } class D : C() { override fun f() { println("Df()") } inner class X { fun g() { super@Df() // <- here } } } 

这与OuterClass.this类似于Java OuterClass.this 在Kotlin中的expression方式 。

这在Kotlin中是相当的:

 internal class Outer { internal inner class Inner { fun myMethod() { println(super@Outer.toString()) } } override fun toString(): String { return "Blah" } }