来源于菜鸟教程
Kotlin接口与Java8类似,使用interface关键字定义接口。允许方法有默认实现:
interface MyInterface { fun bar() //未实现 fun foo(){ //已实现 println("foo") } }
实现接口
一个类或者对象可以实现一个或多个接口。
class Child : MyInterface { override fun bar (){ //方法体 } }
实例:
接口中的属性
接口中的属性只能是抽象的,不允许初始化值,接口不会保存属性值,实现接口时,必须重写属性。
interface MyInterface { var name : String //name 属性,抽象的 } class MyImpl : MyInterface { override var name : String = "runoob" }
函数重写
实现多个接口时,可能会遇到同一个方法继承多个实现的问题:如下
实现中接口A1和B1都定义了方法foo()和bar(),两者都实现了foo().B1实现了bar()。因为C是一个实现了A的具体类。所以必须要重写bar()并实现这个抽象方法。
然而,如果我们从 A和B 派生D我们需要实现多个接口的所有方法并指明D应该如何实现他们。这一规则即适用于继承单个实现也适用于继承多个实现的方法。