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

相关推荐
码云数智-园园2 分钟前
前端跨域全解析:核心原理、解决方案选型与实战指南
开发语言
qq_417695053 分钟前
内存对齐与缓存友好设计
开发语言·c++·算法
2301_816651223 分钟前
实时系统下的C++编程
开发语言·c++·算法
2401_831824964 分钟前
C++与Python混合编程实战
开发语言·c++·算法
飞Link7 分钟前
告别 ROS 的臃肿:用 ZeroMQ 构建极速具身智能分布式大脑(附 Python 实战)
开发语言·分布式·python
qq_2113874710 分钟前
基于LangGraph多agent
开发语言·前端·javascript·agent·langgraph
※※冰馨※※10 分钟前
【QT】TortoiseGit配 SSH 克隆 Codeup
开发语言·c++·windows
一只爱学习的小鱼儿11 分钟前
使用QT编写粒子显示热力图效果
开发语言·qt
2301_8166512212 分钟前
C++中的策略模式高级应用
开发语言·c++·算法
liuyao_xianhui14 分钟前
优选算法_模拟_替换所有的‘?‘_C++
开发语言·javascript·数据结构·c++·算法·链表·动态规划