Kotlin类和对象 (十二)--- 委托(Delegation)
来源:互联网 发布:php 会员权限 编辑:程序博客网 时间:2024/05/19 03:46
类委托
委托模式 已经证明是 实现继承的一个很好的替代方式, 而 Kotlin 可以零样板代码地原生支持它。 类 Derived
可以继承一个接口 Base
,并将其所有 共有的方法委托给一个指定的对象:
interface Base { fun print()}class BaseImpl(val x: Int) : Base { override fun print() { print(x) }}class Derived(b: Base) : Base by bfun main(args: Array<String>) { val b = BaseImpl(10) Derived(b).print() // 输出 10}
Derived
的超类型列表中的 by-子句
表示 b 将会在 Derived
中内部存储。 并且编译器将生成转 发给 b 的所有 Base 的方法。
请注意,覆盖会以你所期望的方式工作:编译器会使用你的 override
实现取代委托对象中的实现。如果我们为 Derived
添加 override fun print() { print("abc") }
,该程序会输出“abc”
而不是“10”
。
阅读全文
0 0
- Kotlin类和对象 (十二)--- 委托(Delegation)
- Kotlin-19.代理/委托类(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- 设计模式:Inheritance(继承) 和 Delegation(委托)
- 处理概括关系之十二 :Replace Delegation with Inheritance(以继承取代委托)
- Kotlin语法(十六)-代理(Delegation)
- Kotlin类和对象 (十三)--- 委托属性(Delegated Properties)
- delegation(委托) vs. composition(复合) ?
- JS事件委托(event delegation)
- c++面向对象之复合(composition)、委托(delegation)、继承(inheritance)--(boolan)
- Kotlin for Android(五)Kotlin类和对象
- 802111协议优质博客
- Spring Boot带前后端 渐进式开发企业级博客系统
- JVM内存模型
- 我所理解的Android模块化(三)——模块可插拔单独编译运行
- 微商扫码发货管理系统开发
- Kotlin类和对象 (十二)--- 委托(Delegation)
- A. Anton and Letters Codeforces Round #253 (Div. 2) set 应用
- POI样式,hssfworkbook样式
- [CTSC1999]营救大兵瑞恩
- CakePHP
- 金融平台红海杀戮,这样才能在混乱中占到巨头便宜
- python 发送邮件可以发送 附件
- 38、我的C#学习笔记4
- ubuntu 14.04 /usr/bin/ld: 找不到 -lcurl问题解决