
Kotlin语法基础之面向对象编程接口的实现
发布日期:2021-05-06 00:55:41
浏览次数:18
分类:精选文章
本文共 1148 字,大约阅读时间需要 3 分钟。
1. Kotlin接口
Study接口:
interface Study { fun readBooks() fun doHomeWork()}
引例:
fun main() { doStudy(Student("Tom", 18))}open class Person(val name: String, val age: Int) {}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") }}fun doStudy(study: Study) { study.readBooks() study.doHomeWork()}
运行结果:

熟悉Java的人都知道, Java中继承使用的关键字是extends, 实现接口使用的关键字是implements, 而Kotlin中统一使用冒号: 中间用逗号分隔我们可以对接口中的函数选择默认实现(从jdk1.8开始有这个功能)
interface Study { fun readBooks() fun doHomeWork(){ println("I'm doing homework now.") }}
如果接口中的函数有了函数体, bane函数体中的内容就是它的默认实现. 现在当一个类去实现Study接口时, 只会强制要求重写readBooks方法, 而doHomework方法可以选择实现, 如果不去实现, 则使用默认的实现逻辑.
测试代码:
fun main() { doStudy(Student("Tom", 18))}open class Person(val name: String, val age: Int) { }class Student(name: String, age: Int) : Person(name, age), Study { override fun readBooks() { println("$name is reading") }}fun doStudy(study: Study) { study.readBooks() study.doHomeWork()}
运行结果:

发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月05日 19时05分48秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
.NET 5.0正式发布,新功能特性(翻译)
2019-03-06
重磅推出:AutoProject Studio 自动化项目生成器
2019-03-06
INotifyPropertyChanged 接口
2019-03-06
一些有趣的线段树玩法
2019-03-06
Go语言中的数组与数组切片
2019-03-06
操作系统启动过程
2019-03-06
进程管理
2019-03-06
物理层
2019-03-06
内建函数
2019-03-06
C/C++分文件编写
2019-03-06
80x86指令系统-1-数据传送指令
2019-03-06
C语言+easyX图形库的推箱子实现
2019-03-06
结构体内存偏移量
2019-03-06
应用程序与dll的静态库通信
2019-03-06
反汇编-流程控制语句-2-循环控制语句分析
2019-03-06
调试vs2019代码的流程
2019-03-06
游戏外挂基础-概述
2019-03-06
脱壳与加壳-加壳-6-代码实现加密导入表
2019-03-06
Typora配置PicGo时,提示Failed to fetch
2019-03-06