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

Sie*_*yer 8 kotlin

什么是Kotlin相当于Java的OuterClass.super.method()

示例(在Java中):

class Outer {
    class Inner {
        void someMethod() {
            Outer.super.someOtherMethod();
        }
    }

    @Override
    public String someOtherMethod() {
        // This is not called...
    }
}
Run Code Online (Sandbox Code Playgroud)

hot*_*key 21

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

open class C {
    open fun f() { println("C.f()") }
}

class D : C() {
    override fun f() { println("D.f()") }

    inner class X {
        fun g() {
            super@D.f() // <- here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这类似于Java如何OuterClass.this在科特林表示this@OuterClass.