Kotlin之接口

接口是用於實現多態編程的重要組成部分

Kotlin與Java一樣,單繼承多實現,我們可以在接口中定義一些抽象方法,任何由具體的類去實現

創建Study接口,並添加幾個相關函數:

interface Study {
    fun readBook()
    fun doHomeWork()
}

讓Student去實現Study接口:

class Student(name: String, age: Int) : Person(name, age), Study {
    override fun readBook() {
        print("$name is reading")
    }

    override fun doHomeWork() {
        print("$name is doing")
    }
}

不同於Java中用extends和implements來完成繼承和實現,Kotlin中統一使用冒號,中間用逗號分隔

上述代碼表示Student繼承了Person類同時實現了Study接口,Study後面不需要加括號,因爲他沒有構造函數可去調用

Kotlin中使用override關鍵字來重寫或者實現父類的接口中的函數,並且允許對接口中定義的函數進行默認實現(jdk1.8之後也支持這個功能了)

函數的可見性修飾符

修飾符 Java Kotlin
public 所有類可見 所有類可見(默認)
private 當前類可見 當前類可見
protected 當前類、子類和同一包路徑下的類可見 當前類和子類可見
default 同一包路徑下的類可見(默認)
internal 同一模塊中的類可見

Java中的可見性修飾符:public、protected、private和default(什麼都不寫)

Kotlin中的可見性修飾符:public、private、protected和internal

需要使用哪種修飾符時,直接定義在fun關鍵字前面即可

private作用相同

public作用相同,但是在Kotlin中是默認項

protected,Java:對當前類、子類和同一包路徑下的類可見,Kotlin:只對當前類和子類可見

internal:只對同一模塊中的類可見

微信掃描二維碼,關注我的公衆號
歡迎關注這個不是技術號的公衆號,我們聊聊別的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章