Kotlin语法(八)-接口
2016-09-03 09:49
218 查看
定义接口
接口使用interface关键字。Kotlin 的接口类似于 java 8。可以包含抽象方法,以及方法的实现。和抽象类不同的是,接口不能保存状态;可以有属性但必须是抽象的 或 提供访问实现。
interfaceMyInterface { fun bar() fun foo() { // optional body } } |
实现接口
一个类 或 对象 可以实现一个或多个接口。class Child :MyInterface { override fun bar() { // body } } |
接口中的属性
可以在接口中声明属性,属性必须是抽象的 或 提供访问实现。interfaceMyInterface { val property: Int // abstract val propertyWithImplementation: String get() = "foo" fun foo() { print(property) } } class Child :MyInterface { override val property: Int = 29 } |
重写冲突
多个继承(父类)或实现(接口)后,同一个方法在不同的父类中有多个不同的实现版本;但一个类都继承或实现该类后,同一个方法会有过个实现版本,就会造成重写冲突:interface A { fun foo() { print("A") } fun bar() } interface B { fun foo() { print("B") } fun bar() { print("bar") } } class C : A { override fun bar() { print("bar") } } class D : A, B { override fun foo() { super<A>.foo() super<B>.foo() } } |
而我们从 A 和 B 派生一个 D ,我们不用重写 bar() 方法,因为我们的一个继承中有一个已经实现了它。但我们继承了俩个 foo() 的实现,因此编译器不知道应该选哪个,并强制我们重写 foo() 并且明确指出我们想怎么实现。
相关文章推荐
- Kotlin——程序核心构成元素之包、类、接口以及对象基本语法(一)
- Kotlin——程序核心构成元素之包、类、接口以及对象基本语法(二)
- kotlin基础笔记之类、接口、函数和基本语法
- Kotlin语法(其他)
- Kotlin 从学习到 Android 第八章 接口
- Kotlin 基础语法
- 接口的具体语法
- Kotlin学习之-5.3 接口
- Kotlin语法(十)-扩展
- Kotlin 学习笔记(二)—— 基础语法
- Kotlin一些基本语法
- Kotlin语法(类和对象)
- kotlin学习--基本语法
- Kotlin Primer·第二章·基本语法
- Kotlin------数据类型和语法
- Kotlin------数据类型和语法
- Kotlin基础语法
- Kotlin(二)-->基础语法
- kotlin---01、基本语法(包)
- Java基础语法----集合(1)collection接口、list接口