Kotlin相当于Java的OuterClass.super.method()
?
示例(在Java中):
class Outer {
class Inner {
void someMethod() {
Outer.super.someOtherMethod();
}
}
@Override
public String someOtherMethod() {
// This is not called...
}
}
答案 0 :(得分:16)
使用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
}
}
}
这与Java OuterClass.this
expressed in Kotlin as this@OuterClass
的方式类似。
答案 1 :(得分:1)
根据 inner classes 上的这一节,您可以简单地调用外部方法:
class Outer {
inner class Inner {
fun foo() {
bar()
}
}
private fun bar() {}
}
答案 2 :(得分:0)
这与Kotlin相同:
internal class Outer {
internal inner class Inner {
fun myMethod() {
println(super@Outer.toString())
}
}
override fun toString(): String {
return "Blah"
}
}