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