Kotlin学习 - 接口 + 可见修饰符

接口定义

kotlin和Java中的接口定义类似:

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

接口实现

Student中实现Study接口,需要实现Study中声明的全部未实现函数。

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

如下为接口多态使用:

fun main() {
    
    
    val student = Student("lucy", 19)
    //student.doHomework()
    study(student)
}

fun study(study: Study) {
    
    
    study.doHomework()
}

//结果:lucy is doing homework

接口函数实现

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

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

由于doHomework有默认实现,接口实现类不会再强制要求实现,

class Student(name: String,  age: Int) : Person(name, age), Study{
    
    
    override fun readBooks() {
    
    
        println("$name is reading homework")
    }
}

运行下面程序:

fun main() {
    
    
    val student = Student("lucy", 19)
    student.doHomework()
}

//结果:do homework default implementation

可见修饰符

如下是Java和Kotlin中可见修饰符的范围和对比。

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

猜你喜欢

转载自blog.csdn.net/kongqwesd12/article/details/131224373
今日推荐