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()
            }
        }

运行结果:

image

二,实现多个接口

定义接口和实现类

// 继承多个接口
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()
            }
        }

运行结果:

image

三,实现多个接口时方法名的冲突

代码:定义接口和实现类

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()
            }
        }

运行结果:

image

posted @ 2025-08-02 15:06  刘宏缔的架构森林  阅读(10)  评论(0)    收藏  举报