您的位置:首页 > 运维架构

Kotlin -- open, final, abstract 修饰符

2018-03-01 23:22 183 查看

Kotlin – open, final, abstract

  在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
属性。

修饰符相应类的成员注解
final
不能被覆写在kotlin中默认所有的方法和类都是
final
属性
open
可以被覆写需要被明确指出
abstract
必须要覆写不能被实例化,默认具有
open
属性。
override
覆写超类的方法如果没有被指定为
final
,则默认具有
open
属性
  上述表格仅适用于基类,对于接口类来说,你基本用不上
fianl
open
abstract
,因为接口类默认是
open
,且不能被声明为
final
,如果接口类的方法没有函数体,那么其为
abstract
,但是不需要你明确指出他是
abstract
的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息