類修飾符
修飾符 |
說明 |
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關鍵字的作用 |