Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调用外部类&x27;来自Kotlin内部类的超级方法?_Kotlin - Fatal编程技术网

如何调用外部类&x27;来自Kotlin内部类的超级方法?

如何调用外部类&x27;来自Kotlin内部类的超级方法?,kotlin,Kotlin,Kotlin与Java的OuterClass.super.method()的等价物是什么 示例(Java语言): 使用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() {

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

示例(Java语言):


使用
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
        }
    }
}
开放类C{
打开fun f(){println(“C.f()”)}
}
D类:C(){
重写fun f(){println(“D.f()”)}
内类X{
Fung(){

super@D.f()//这在Kotlin中是等效的:

internal class Outer {
    internal inner class Inner {
        fun myMethod() {
            println(super@Outer.toString())
        }
    }

    override fun toString(): String {
        return "Blah"
    }
}

根据上的本节,您可以简单地调用外部方法:

class Outer {

    inner class Inner {
        fun foo() { 
            bar() 
        }
    }

    private fun bar() {}
}

你能举一个Java代码使用的例子吗?请注意,Kotlin中的嵌套类默认为static。对于内部类,你必须使用internal关键字。
class Outer {

    inner class Inner {
        fun foo() { 
            bar() 
        }
    }

    private fun bar() {}
}