Kotlin 匿名类实现接口和抽象类的差异
匿名类作为接口或抽象类的实现方式存在差异。接口的匿名类实现只需要声明方法体,而抽象类的匿名类实现则需要声明方法体和属性。具体实现方式如下:
接口实现:
interface OnBind {
fun onBindChildViewData(holder: String, itemData: Any, position: Int)
}
// 匿名类实现接口
lesson.does(object : OnBind {
override fun onBindChildViewData(holder: String, itemData: Any, position: Int) {
println(holder + itemData + position)
}
})
抽象类实现:
abstract class A {
abstract fun methodA()
}
// 匿名类实现抽象类
abstract class A {
abstract fun methodA()
abstract fun methodB()
// 匿名类实现抽象类
object : A() {
override fun methodA() {
// 方法体
}
override fun methodB() {
// 方法体
}
}
}
40.19KB
文件大小:
评论区