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

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


目录
相关文章
|
2月前
|
Java 物联网 Kotlin
Kotlin - 面向对象之抽象类与接口
Kotlin - 面向对象之抽象类与接口
|
3月前
|
IDE 开发工具 iOS开发
Kotlin教程笔记(11) - 面向对象之抽象类与接口
本系列教程笔记详细讲解了Kotlin语法,适合深入学习。若需快速掌握Kotlin,建议查阅“简洁”系列教程。本文重点介绍了Kotlin中的抽象类与接口,包括接口的定义、实现、继承,以及抽象类的定义、构造器、方法实现等关键概念。
36 2
|
5月前
|
设计模式 Android开发 Kotlin
Android经典实战之Kotlin委托模式和by关键字
本文介绍了Kotlin中`by`关键字在类及属性委托中的运用,通过实例展示了如何利用类委托简化接口实现,以及如何借助标准与自定义属性委托管理属性的读写操作。通过`by`关键字的支持,Kotlin使得委托模式的实现更为直观且高效。
105 4
|
1月前
|
Java 物联网 Kotlin
Kotlin教程笔记(11) - 面向对象之抽象类与接口
Kotlin教程笔记(11) - 面向对象之抽象类与接口
26 2
|
2月前
|
Java 物联网 Kotlin
Kotlin教程笔记(11) - 面向对象之抽象类与接口
Kotlin教程笔记(11) - 面向对象之抽象类与接口
68 9
|
2月前
|
Java 物联网 Kotlin
Kotlin - 面向对象之抽象类与接口
Kotlin - 面向对象之抽象类与接口
55 5
|
2月前
|
Java 物联网 Kotlin
Kotlin - 面向对象之抽象类与接口
Kotlin - 面向对象之抽象类与接口
23 5
|
2月前
|
Java 物联网 Kotlin
Kotlin教程笔记(11) - 面向对象之抽象类与接口
Kotlin教程笔记(11) - 面向对象之抽象类与接口
|
2月前
|
Java 物联网 Kotlin
Kotlin教程笔记(11) - 面向对象之抽象类与接口
Kotlin教程笔记(11) - 面向对象之抽象类与接口
26 3
|
3月前
|
Java 物联网 Kotlin
Kotlin教程笔记(11) - 面向对象之抽象类与接口
Kotlin教程笔记(11) - 面向对象之抽象类与接口