Kotlin-接口

来源:互联网 发布:若风外设淘宝店地址 编辑:程序博客网 时间:2024/06/11 05:05

在Java 8中,Kotlin的接口可是非常简便。它不仅可以有抽象方法,也可以有方法实现。它和抽象类的区别是接口不能保存状态。他们都可以有属性,不过要定义为抽象的或有访问器实现。
定义一个接口,可以用interface关键字

interface MyInter{    fun bar();    fun food(){        //具体实现    }}

实现接口

class My :MyInter{    override fun bar(){        //具体实现    }}

接口中的属性

在接口中可以声明属性,接口中的属性需要声明为抽象的或者有具体访问器的,在接口中的属性不可以有隐性字段,并且在访问器之前也不可以引用它们。

interface MKInter{    val prop:Int //抽象    val propertyImpl:String        get()="MK"    fun food(){        println(prop);    }}

解决覆写冲突

当我们在父类声明很多类型或方法的时候,在子类中实现多个接口的时候,总会有一些重名的冲突

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()    }    override fun bar() {        super<B>.bar()    }}

在以上示例中,接口A和接口B都声明了foo()和bar(),并且A中的bar()是抽象,而B中却有具体实现,当我们单独实现A接口的时候,必须要实现bar方法,然而当我们同时实现A接口和B接口的时候,这时候就会出现一个冲突的问题,因此我们在D类中就要处理好多个实现的情况.

原创粉丝点击