1、Java是单继承结构的语言,任何一个类最多只能继承一个父类,但是确可以实现任意多个接口,Kotlin也是如此。
2、创建方式:右击com.example.helloworld包 -> New -> Kotlin File/Class,在弹出的对话框中输入Study,创建类型选择“Interface”。
interface Study{
fun readBooks()
fun doHomework()
}
用Student类去实现Study接口:
class Student(name: String, age: Int) : Person(name, age), Study{
override fun readBooks(){
println(name + " is reading.")
}
override fun doHomework(){
println(name + " is doing homework.")
}
}
3、Java中用继承使用的关键字是extends,实现接口使用的关键字是implements,而Kotlin中统一使用冒号,中间用逗号进行分隔,接口的后面不用加上括号,因为它没有构造函数可以去调用。
4、Kotlin中使用override关键字来重写父类或者实现接口中的函数。
5、在main()函数中调用两个接口的函数:
fun main(){
val student = Student("Jack", 19)
doStudy(student) //由于Student类实现了Study接口,因此Student类的实例是可以传递给doStudy()函数的
}
fun doStudy(study: Study){
study.readBooks()
study.doHomework()//面向接口编程,也可以叫做多态
}
6、为了让接口的功能更加灵活,Kotlin中还增加了一个额外的功能:允许对接口中定义的函数进行默认实现:
interface Study{
fun readBooks()
fun doHomework(){//如果接口中的一个函数拥有了函数体,这个函数体中的内容就是它的默认实现
println("do homework default implementation.")
}
}
当一个类去实现Study接口时,只会强制要求实现readBooks()函数,而doHomework()函数则可以自由选择实现或者不实现,不实现时就会使用默认的实现逻辑。
网友评论