小编PRA*_*NGH的帖子

子类的 Kotlin 变量初始化在初始化值为 0 的变量时表现得很奇怪

我创建了以下类层次结构:

open class A {
    init {
        f()
    }

    open fun f() {
        println("In A f")
    }
}

class B : A() {
    var x: Int = 33

    init {
        println("x: " + x)
    }

    override fun f() {
        x = 1
        println("x in f: "+ x)
    }

    init {
        println("x2: " + x)
    }
}

fun main() {
    println("Hello World!!")
    val b = B()
    println("in main x : " + b.x)
}
Run Code Online (Sandbox Code Playgroud)

这段代码的输出是

open class A {
    init { …
Run Code Online (Sandbox Code Playgroud)

polymorphism overriding initialization class kotlin

17
推荐指数
2
解决办法
1775
查看次数

标签 统计

class ×1

initialization ×1

kotlin ×1

overriding ×1

polymorphism ×1