类修饰符
| 修饰符 | 说明 |
---|
final | 不能被继承 |
open | 可以被继承 |
abstract | 抽象类 |
enum | 枚举类 |
data | 数据类 |
sealed | 密封类 |
annotation | 注解类 |
Java的类和方法默认是open的,而kotlin中默认都是final的。如果创建一个类的子类,需要使用open修饰符来标示这个类,此外还需要给每一个可以被重写的属性或方法添加open修饰符。
成员修饰符
| 修饰符 | 说明 |
---|
override | 重写函数 |
open | 可被重写 |
final | 不能被重写 |
abstract | 抽象函数 |
iateinit | 后期初始化 |
访问权限修饰符
| 修饰符 | 类成员 | 顶层声明 |
---|
public | 所有地方可见 | 所有地方可见 |
internal | 模块中可见 | 模块中可见 |
protected | 子类中可见 | |
private | 类中可见 | 文件中可见 |
kotlin中访问权限修饰符与Java中的类似,同样可以使用
public,
protected 和
private修饰符。但是默认的访问权限是不一样的,Java中如果省略了修饰符,默认的是
public的。kotlin提供了一个新的修饰符
internal,表示“只在模块内部可见”。一个模块就是一组一起编译的kotlin文件,例如,一个
IntelliJ IDEA模块,一个
Maven工程,或
Gradle工程,通过
Ant 任务的一次调用编译的一组文件等)可访问。
internal可见性的优势在于它提供了对模块实现细节的真正封装。
泛型修饰符
| 修饰符 | 说明 |
---|
in | 相当于Java中的super关键字的作用 |
out | 相当于Java中的extends关键字的作用