如何从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中的表达方式 。
这在Kotlin中是相当的:
internal class Outer { internal inner class Inner { fun myMethod() { println(super@Outer.toString()) } } override fun toString(): String { return "Blah" } }