kotlin中的接口使用

1.接口

Kotlin 中的接口與 Java 8 非常類似. 接口中可以包含抽象方法的聲明, 也可以包含方法的實現. 接口與抽象類的區別在於, 接口不能存儲狀態數據. 接口可以有屬性, 但這些屬性必須是抽象的, 或者必須提供訪問器的自定義實現。

interface OnRefreshListener {

    fun onRefresh()
}

2.接口實現

class ViewModel : OnRefreshListener{

    override fun onRefresh() {

    }
}

在kotlin中實現接口不需要像Java一樣,在Java中實現接口是用過implements關鍵字而在kotlin中通過 :來實現。

3.接口中的屬性

interface OnRefreshListener {

    val mSize: Int

    fun onRefresh()
}
class ViewModel : OnRefreshListener{

    override val mSize: Int get() = 20

    override fun onRefresh() {

    }
}

4.解決覆蓋衝突

實現的兩個接口中方法同名時下面的操作可解決覆蓋衝突

interface OnRefreshListener {

    fun onRefresh()

    fun onFinish(){}
}

interface OnLoadMoreListener {

    fun onLoadMore()

    fun onFinish(){}
}

class ViewModel : OnRefreshListener, OnLoadMoreListener{

    override fun onLoadMore() {

    }

    override fun onRefresh() {

    }

    override fun onFinish() {
        super<OnRefreshListener>.onFinish() // 或者 super<OnLoadMoreListener>.onFinish()
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章