和Java一样,任何一个类最多只能继承一个父类,但是却可以实现任意多个接口。
1.简单使用
首先我们创建一个接口
interface Study {
fun readBook()
fun doHomeWork()
}
让Student类继承它
class Student(name: String, age: Int) : Person(name, age), Study {
override fun readBook() {
println(name + " is reading")
}
override fun doHomeWork() {
println(name + " is doing homeWork")
}
}
在Java中继承使用的关键字是extends,实现接口是用的是implements,而在Kotlin中统一使用 : 关键字,中间用逗号分隔。另外接口的后面不需要加括号,因为他没有构造函数可以去调用。
2.额外功能
为了使用更加灵活,Kotlin增加了一个额外的功能:允许接口中定义的函数进行默认实现。
interface Study {
fun readBook()
fun doHomeWork(){
println("我是默认实现")
}
}
如果接口中的一个函数拥有了函数体,这个函数体中的内容就是它的默认实现。
我们给doHomeWork增加了函数体,那么现在当一个类去继承Study接口时,只会强制要求实现readBook()函数,而doHomeWork则可以自由选择实现或不实现,不实现时就会使用默认的实现逻辑。
网友评论