kotlin中的接口使用

1.接口

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

interface OnRefreshListener {

    fun onRefresh()
}

2.接口實現

class ViewModel : OnRefreshListener{

    override fun onRefresh() {

    }
}

在kotlin中實現接口不須要像Java同樣,在Java中實現接口是用過implements關鍵字而在kotlin中經過 :來實現。ide

3.接口中的屬性

interface OnRefreshListener {

    val mSize: Int

    fun onRefresh()
}
class ViewModel : OnRefreshListener{

    override val mSize: Int get() = 20

    override fun onRefresh() {

    }
}

4.解決覆蓋衝突

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

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()
    }
}

本文分享 CSDN - 秦川小將。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。spa

相關文章
相關標籤/搜索