Kotlin-接口

2022-03-04  本文已影响0人  cjjjjjj

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()函数则可以自由选择实现或者不实现,不实现时就会使用默认的实现逻辑。

上一篇 下一篇

猜你喜欢

热点阅读