Kotlin

Kotlin -- open, final, abstract

2019-07-30  本文已影响0人  总会颠沛流离

在Kotlin中,所有的类默认都是final的。如果你需要允许它可以被继承,那么你需要使用open声明:

   //这个类具有`open`属性,可以被其他类继承
  open class People: Speakable{
  //`open`的方法被实现和覆写,该方法也是`open`的
  override fun say() {}
  //`final`属性的方法,不可被覆写
fun sayHello() {}
//`open`属性的方法,可以被继承和覆写
open fun sayName() {}

}
 当然,你也可以阻止某些方法被覆写:

 open class People: Speakable{
//`final`修饰一个原本具有`open`属性的方法,使其变得不可再被覆写
final override fun say() {}
}

在kotlin中,abstract的用法几乎和Java一致,我就不再啰嗦,值得一提的是,当你使用abstract修饰符的时候,可以忽略open修饰符,因为被abstract修饰的类默认具有open属性

image.png
上述表格仅适用于基类,对于接口类来说,你基本用不上fianl、open、abstract,因为接口类默认是open,且不能被声明为final,如果接口类的方法没有函数体,那么其为abstract,但是不需要你明确指出他是abstract的。
上一篇 下一篇

猜你喜欢

热点阅读