interface MyInterface { fun doSomething() } fun MyInterface.doSomethingExtended() { // 实现方法 } fun main() { val myObject: MyInterface = MyClass() myObject.doSomething() // 使用原始方法 myObject.doSomethingExtended() // 使用扩展方法 }
interface MyInterface { fun doSomething() } class MyClass : MyInterface { private val delegate = MyDelegate() override fun doSomething() { delegate.doSomething() } } class MyDelegate { fun doSomething() { // 实现方法 } } fun main() { val myObject: MyInterface = MyClass() myObject.doSomething() }
interface MyInterface { fun doSomething(block: () -> Unit) } fun main() { val myObject: MyInterface = object : MyInterface { override fun doSomething(block: () -> Unit) { block() } } myObject.doSomething { println("Hello, World!") } }
interface MyInterface { fun getX(): Int fun getY(): Int } fun main() { val (x, y) = myObject }
equals()
、hashCode()
和 toString()
。如果你需要实现一个接口并且只需要添加一些数据,可以考虑使用数据类。data class MyDataClass(val x: Int, val y: Int) : MyInterface { override fun getX(): Int { return x } override fun getY(): Int { return y } }
通过使用这些 Kotlin 特性,你可以简化接口的开发,提高代码的可读性和可维护性。