覆写方法

与被继承类的声明类似,可以被覆写的成员或方法也必须要使用open标记。

open class Base {
    open fun v() {}
    fun nv() {}
}
class Derived() : Base() {
    override fun v() {}
}

override注解在Derived.v()中是必须的。如果未使用override,编译器将报错。如果没有使用open标记一个函数,比如Base.nv(),那么在子类当中定一个签名一样的方法将会出错。不管使不使用override关键字。在final类中,open修饰的成员是被禁止的。

一个被标记为override的方法本身是可以被修改的(open)。它可能被子类重写,如果你不想让其被重写,那么使用final

open class AnotherDerived() : Base() {
    final override fun v() {}
}

results matching ""

    No results matching ""