Kotlin 笔记 接口

kotlin的接口类似于Java 8中的接口,可以定义抽象函数,函数也可以有默认实现。它和抽象类的不同是接口不能存储状态。接口可以有属性,但是属性必须是抽象的或者提供访问方法的实现(要么没有实现,要么你自己提供实现,编译器不会帮你提供属性访问方法的实现)。

定义接口

interface MyInterface {
    fun bar()
    fun foo() {
      // optional body
    }
}

实现接口

class Child : MyInterface {
    override fun bar() {
        // body
    }
}

如果我们同时继承了两个接口,如果同名函数没有默认实现,或者有两个以上默认实现,子类需要显式overide函数,如果只有一个默认实现,则不需要显式overide

interface A {
    fun foo() { print("A") }
    fun bar()
}

interface B {
    fun foo() { print("B") }
    fun bar() { print("bar") }
}

class C : A {
    override fun bar() { print("bar") }
}

class D : A, B {
    override fun foo() {
        super<A>.foo()
        super<B>.foo()
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容