kotlin学习笔记——接口与委托
来源:互联网 发布:剑三怎么捏脸数据 编辑:程序博客网 时间:2024/06/16 05:52
Kotlin学习笔记系列:http://blog.csdn.net/column/details/16696.html
kotlin中的接口比java7中的要强大很多,与java8的很相似。
java7中的接口只能定义行为,不能实现。
kotlin中的接口也可以实现函数,但是与类的区别是它们是无状态(stateless)的,所以属性需要子类去重写。如:
interface FlyAnimal{ val wings : Wings fun fly() = wings.move()}class Bird : FlyAnimal{ override val wings : Wings = Wings()}可以看到在接口中实现了函数,所以子类不必再重写,但是属性没有实现,子类需要去实现属性。
委托模式是kotlin原生支持的,所以我们不必去调用委托对象。委托者只需要实现实现接口的实例。如:
interface CanFly{ fun fly()}class AnimalWithWings : CanFly{ val wings : Wings = Wings() override fun fly() = wings.move()}class Bird(f : CanFly) : CanFly by f//使用时val bird = Bird(AnimalWithWings())bird.fly()我们定义了一个接口CanFly,AnimalWithWings实现了这个接口,Bird也实现了这个接口但是委托了AnimalWithWings,所以Bird不用去实现接口了。
上面的实例中我们是将委托定义到构造函数中的,我们也可以直接指定委托来实例化对象。如:
class Bat : CanFly by AnimalWithWings()//使用时val bat = Bat()bat.fly()
阅读全文
0 0
- kotlin学习笔记——接口与委托
- kotlin学习笔记——委托属性
- Kotlin学习笔记--继承、接口、代理、委托、单例
- kotlin学习笔记——类、函数、接口
- [Kotlin]Kotlin学习笔记(三):Null检查机制及lateinit与by lazy(委托机制)的应用
- Kotlin学习笔记——与java对比
- Kotlin学习笔记——Kotlin中的null安全
- kotlin学习笔记001——kotlin简介
- Kotlin学习笔记——标准库kotlin
- Kotlin学习笔记——标准库kotlin.system
- Kotlin学习笔记——标准库kotlin.io
- Kotlin学习笔记——标准库kotlin.collections
- Kotlin学习笔记——安装配置kotlin
- kotlin学习笔记——Kotlin Android Extensions
- Kotlin学习笔记(1)-类,接口,对象
- 委托、事件与Observer设计模式——学习笔记
- Kotlin学习笔记——基本类型
- Kotlin学习笔记——Day1
- 回声消除原理
- ubuntu tomcat 基础配置
- 灰度平均梯度(Grayscale Mean Gradient)
- 车票打印
- 数据挖掘算法-Apriori算法
- kotlin学习笔记——接口与委托
- JAVA在ACM中的应用
- Struts2、SpringMVC、Servlet(Jsp)性能对比 测试
- spring-boot actuator(监控)配置和使用
- html背景色渐变
- 用C++实现冒泡排序
- android知识网络
- python3-numpy
- 回声消除的原理和应用场景