欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 )

发布时间:2025/6/17 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 ) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

        • I . 定义 和 实现普通接口
        • II . 使用委托实现接口
        • III . 使用委托实现接口的基础上执行额外操作
        • IV . 测试上述三种接口实现 ( 普通实现 | 委托 | 委托 + 额外操作 )



I . 定义 和 实现普通接口



1 . 定义普通的接口 : 使用 interface 声明接口 , 接口中的方法没有方法体 , 也不用 abstract 关键字修饰 ;

package entrust/*** 定义一个学习接口 , 代表有学习的能力*/ interface IStudy {/*** 抽象方法 , 学习*/fun study()}

2 . 实现接口 : 使用 “:” 声明该类实现的接口 , 是接口的子类 , 注意类中必须实现接口的方法 , 实现方法需要使用 override 修饰 ;

package entrust/*** 定义学生类 , 实现学习接口 , 其有学习的能力*/ class Student : IStudy {/*** 实现的学习抽象方法*/override fun study() {println("学习")} }

II . 使用委托实现接口



使用委托实现接口 : 使用 : IStudy 声明该类实现了 IStudy 接口 , 但是这个类不实现 study() 抽象方法 , 而是委托给了 Student 类 , 当调用 BadStudent 的 study() 方法时 , 会自动调用 Student 类的 Study ( ) 方法 ;

package entrust/*** 坏学生不学习 , 虽然实现了学习接口 , 但是其委托 普通学生来学习 , 自己什么都不做*/ class BadStudent : IStudy by Student() { }

III . 使用委托实现接口的基础上执行额外操作



使用委托实现接口的基础上执行额外操作 : 当类实现接口 , 并将接口的操作委托给了另外的类 , 此时仍可以实现接口中的方法 , 在重写的方法中 , 可以调用委托方法 , 并且还可以额外做其它操作 ;

package entrust/*** 最好的学生* 委托 学生学习 , 自己额外学习更多东西*/ class BestStudent : IStudy by Student() {/*** 委托其它类后 , 也可以自己实现该类 , 在委托方法的前后可以执行其它额外操作*/override fun study() {println("复习之前的知识")Student().study()println("加强学习")}}

IV . 测试上述三种接口实现 ( 普通实现 | 委托 | 委托 + 额外操作 )



测试上述三种情况 :


① 测试接口实现类 ;

② 测试委托 ;

③ 测试委托的同时额外执行其它操作 ;

package entrustfun main() {// I . 测试接口实现类//创建 接口实现类 对象var goodStudent : Student = Student()//执行实现的内容// 学习goodStudent.study()// II . 测试委托// 创建 使用委托实现接口 类的对象var badStudent : BadStudent = BadStudent()//执行委托的方法// 学习badStudent.study()//III . 测试委托的同时额外执行其它操作//创建 使用委托实现接口并执行额外操作 类的对象var bestStudent : BestStudent = BestStudent()//执行委托方法和额外操作/*复习之前的知识学习加强学习*/bestStudent.study()}

总结

以上是生活随笔为你收集整理的【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。