kotlin: 接口的例子
一,实现接口
代码:
实义接口和实现类
// 定义接口
interface AnimalInterface {
val name: String
// 抽象方法
fun play()
// 默认实现的方法
fun sleep() {
println("睡觉中...")
}
}
// 实现接口的类
class Dog1 : AnimalInterface {
override val name: String = "狗"
override fun play() {
println("狗正在 playing")
}
override fun sleep() {
println("狗正在 sleeping")
}
}
class Cat1 : AnimalInterface {
override val name: String = "猫"
override fun play() {
println("猫正在 playing")
}
}
调用:
//处理按钮点击事件
binding.button1.setOnClickListener {
runBlocking {
val dog = Dog1()
val cat = Cat1()
dog.play()
dog.sleep()
cat.play()
cat.sleep()
}
}
运行结果:

二,实现多个接口
定义接口和实现类
// 继承多个接口
interface InterfaceA {
fun methodA()
}
interface InterfaceB {
fun methodB()
}
class ExtendsMultiple : InterfaceA, InterfaceB {
override fun methodA() {
println("Method A 的实现")
}
override fun methodB() {
println("Method B 的实现")
}
}
调用:
//处理按钮点击事件
binding.button2.setOnClickListener {
runBlocking {
val obj = ExtendsMultiple()
obj.methodA()
obj.methodB()
}
}
运行结果:
![]()
三,实现多个接口时方法名的冲突
代码:定义接口和实现类
interface InterfaceC {
fun method() {
println("Interface C中的method()方法")
}
}
interface InterfaceD {
fun method() {
println("Interface D中的method()方法")
}
}
class ExtendsMultiple2: InterfaceC, InterfaceD {
override fun method() {
super<InterfaceC>.method() // 调用 InterfaceC 的默认实现
super<InterfaceD>.method() // 调用 InterfaceD 的默认实现
println("new implementation")
}
}
调用:
//处理按钮点击事件
binding.button3.setOnClickListener {
runBlocking {
ExtendsMultiple2().method()
}
}
运行结果:

浙公网安备 33010602011771号