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

文章介绍了Kotlin和Java中接口的定义与实现方式,展示了Kotlin如何允许在接口中提供默认函数实现,以及接口的多态使用。此外,还对比了两种语言的可见修饰符范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口定义

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中可见修饰符的范围和对比。

修饰符JavaKotlin
public所有类可见所有类可见(默认)
private当前类可见当前类可见
protected当前类、子类、同一包路径下的类可见当前类、子类可见
default同一包路径下的类可见(默认)
internal同一模块中的类可见
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值