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