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() {
            // 方法体
        }
    }
}
pdf 文件大小:40.19KB