kotlin 类委托

写个demo测试下:

Kotlin 复制代码
interface IWorker {
    fun work(): String
}

class Worker(val name: String): IWorker { // 工人
    override fun work(): String {
        return "我起早贪黑工作。"
    }
}

class Contractor(val name: String, work: IWorker) : IWorker by work // Contractor是包工头,委托工人做事

fun main() {
    val work = Worker("杨白劳") // 工人杨白劳
    val contractor = Contractor("黄世仁" ,work) // 包工头黄世仁
    println("我是${contractor.name}, ${contractor.work()}")
}

打印:

ok. 黄世仁工作,实际啥也没干,调用的是杨白劳。可见委托类在调用函数时啥也不做,直接调用的被委托对象的函数。

相关推荐
A0微声z15 小时前
Kotlin Multiplatform (KMP) 中使用 Protobuf
kotlin
alexhilton1 天前
使用FunctionGemma进行设备端函数调用
android·kotlin·android jetpack
lhDream1 天前
Kotlin 开发者必看!JetBrains 开源 LLM 框架 Koog 快速上手指南(含示例)
kotlin
RdoZam2 天前
Android-封装基类Activity\Fragment,从0到1记录
android·kotlin
Kapaseker2 天前
研究表明,开发者对Kotlin集合的了解不到 20%
android·kotlin
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1232 天前
matlab画图工具
开发语言·matlab
dustcell.2 天前
haproxy七层代理
java·开发语言·前端
norlan_jame2 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone2 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc