Kotlin入门笔记(六)接口 与 函数可见性修饰符

前言:本教程最好在有JAVA的基础下进行学习

一、接口

Kotlin的接口与Java几乎完全一致

定义一个接口:

interface Study{
    fun readBooks()
    fun doHomework()
}

用Student实现这个接口:

class Student(name : String , age : Int) :  Study {
    override fun readBooks() {
        println(name + " is reading.")
    }
    override fun doHomework(){
        println(name + " is doing homework.")
    }
}

熟悉 Java 的人一定指定,Java 的继承用的 extends  ,实现接口用的是 implements  ,而 Kotlin 统一使用 :  (冒号)

现在我们可以再 main() 函数中编写如下代码来调用这两个接口中的函数

fun main() {
    val student = Student("Jack",19)
    doStudy(student)
}
fun doStudy(study : Study) {
    study.readBooks()
    study.doHomework()
}

不过 Kotlin 还增加了一个功能:

        允许对接口中定义的函数进行默认实现。

话不多说,上代码:

interface Study {
    fun readBooks()
    fun doHomework() {
        println("do homework default implementation.")
    }
}

 这时会发现,Student 只会强制要求实现 readBooks 一个函数了。

二、函数的可见性修饰符

默认修饰项:

               Java :  default

               Kotlin : public

Kotlin 抛弃了Java 中的 default ,引入了新的概念:internal ,表示只对同一模块的类可见。 protected 在 Java 与 Kotlin 中也有所不同,具体可见下表:

Java 与 Kotlin 函数可见性修饰符对照表
修饰符 Java Kotlin

public

所有类可见 所有类可见(默认)
private 当前类可见 当前类可见
protected 当前类、子类、同一包路径下的类可见 当前类、子类可见
default 同一包路径下的类可见(默认)
internal 同一模块中的类可见 

如果喜欢这个系列的话,不妨点个关注吧!感谢您的观看!

参考:

        《第一行代码 Android (第三版)》   ---郭霖

猜你喜欢

转载自blog.csdn.net/m0_46745664/article/details/122856508