kotlin语法快速入门-接口与接口实现(8)
文章目录
八、接口与接口实现
1、接口定义与实现
在kotlin中语法与Java语法差不多,唯一区别就是没有使用implement关键字,用冒号,像继承一样。多个接口继承用逗号隔开。下面是接口定义与接口实现的一个例子:
kotlin
class AParent() : A, B { //接口实现
}
interface A { //接口A
}
interface B { //接口B
}
2、接口成员变量
2.1、单个接口函数复写
kotlin
class AParent() : A{ //接口实现
override fun print() {
super.print()
}
}
interface A { //接口A
fun print(){}
}
注意:当接口A函数中的
print()
方法存在方法体{}
的时候,默认是可以不重写。没有方法体的时候强制重写,这点个Java一样。
2.2、多个接口同名函数复写
当多个接口具有同名函数的时候,需要使用super<A>
指定复写的是哪一个接口中的函数:
kotlin
class AParent() : A, B { //接口实现
override fun print() {
super<A>.print() //指定父类A的print方法
super<B>.print() //指定父类B的print方法
}
}
interface A { //接口A
fun print() {}
}
interface B { //接口A
fun print() {}
}
2.2、接口成员存在变量和常量
变量重写,其实就是重新其get和set方法:
kotlin
class AParent() : A { //接口实现
override var name: String
get() = TODO("Not yet implemented")
set(value) {}
}
interface A { //接口A
var name: String
}
常量重写,其实就是重新其get方法:
kotlin
class AParent() : A { //接口实现
override val name: String
get() = TODO("Not yet implemented")
}
interface A { //接口A
val name: String
}
也可以将复写的变量写在类的()
里面:
kotlin
class AParent(override var name: String) : A { //接口实现
}
interface A { //接口A
var name: String
}