美文网首页
Kotlin 继承与实现

Kotlin 继承与实现

作者: 512DIDIDI | 来源:发表于2019-01-07 13:41 被阅读0次

在kotlin中,基类与接口涉及到两个关键字:openabstract
本质上这两者都是用于表明 子类可以重写方法或继承

  • open可以有方法体,子类可以通过super关键字访问
  • abstract就如同java中的abstract一样,即当前类不用实现方法,交由子类实现:
abstract class A{
  open fun f(){
    println("A.f()")
  }
  abstract fun g()
}

子类重写时,override的方法默认是open,如果需要修改不可再覆盖 需加上final关键字:

abstract class B:A(){
  override fun f(){
    super.f()
    println("B.f()")
  }
  final override fun g(){
    println("B.g()")
  }
}

使用abstract关键字修饰方法时,类必须也是abstractopen同理,如果两者都存在,abstract即可

class C: B(){
  override fun f() {
    super.f()
    println("C.f()")
  }
}

fun main(){
  C().apply {
    this.f()
    this.g()
  }
}

最终结果是 A.f() B.f() C.f() B.g()
此外 kotlin中的接口方法,是可以有方法体实现的

interface i{
  fun f(){
    println("i.i()")
  }
  fun g()
}

相关文章

网友评论

      本文标题:Kotlin 继承与实现

      本文链接:https://www.haomeiwen.com/subject/phpyrqtx.html