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

相关推荐
唐青枫17 小时前
别再把 inline 当性能开关:Kotlin 内联、noinline、crossinline 与 reified 实战详解
kotlin
Kapaseker18 小时前
Kotlin Toolchain 0.11 发布:主要是把 Amper 干没了
android·kotlin
黄林晴18 小时前
AndroidX 官宣信号:Compose版WebView要来了!
kotlin
如此风景1 天前
Kotlin Flow操作符学习
android·kotlin
plainGeekDev2 天前
GreenDAO → Room
android·java·kotlin
plainGeekDev2 天前
ButterKnife → ViewBinding
android·java·kotlin
Kapaseker3 天前
一文吃透 Kotlin 集合操作符
android·kotlin
plainGeekDev4 天前
Activity 间传值 → Navigation 参数
android·java·kotlin
plainGeekDev4 天前
onActivityResult → ActivityResult API
android·java·kotlin
alexhilton4 天前
Android车载OS中的Remote Compose
android·kotlin·android jetpack