本文主要介绍 Kotlin
接口。
声明
接口使用 interface
关键字声明;
- 接口中可以包含抽象方法的声明,也可以包含方法的实现。
- 接口与抽象类的区别在于, 接口不能存储状态数据。
- 接口可以有属性, 但这些属性必须是抽象的,不能使用初始化器来初始化,或者必须提供访问器的自定义实现。
- 接口不支持
Backing Field
,因此var
变量无法定义访问器,因此var
类型的属性必定是抽象的。
1 | interface FirstInterface { |
实现接口
1 |
|
解决接口覆盖冲突
由于接口是可以多继承的,如果实现多个接口,同时接口中有相同方法的声明,就会出现覆盖冲突,使用官网的一个例子来说明一下覆盖冲突的解决。单继承时自然要实现接口中所有抽象方法,当实现多个接口时,如果实现的接口中具有同名的抽象方法,即使在接口中对该方法都已经有了实现,那么在子类中也必须实现该方法,并使用super<接口名称>.方法名
,如下面的 super<A>.bar()
来在子类中显式的声明到底是继承哪一个实现。
1 | interface A { |