kotlin入门-继承2(多接口,抽象类调用同个方法)

interface A {
    fun x(): Int = 1
}

interface B {
    fun x(): Int = 0
}

abstract class D {
    open fun x(): Int = 5
}

class C(var y: Int = 0) : A, B, D() {
    override fun x(): Int {
        if (y > 0) {
            return y
        } else if (y < -100) {
            return super.x()
        } else if (y < -200) {
            return super.x()
        } else {
            return super.x()
        }
    }
}

fun main(args: Array) {
    println(C(3).x())
    println(C(-300).x())
    println(C(-1).x())
}

使用super关键字

你可能感兴趣的:(kotlin)