前言
二货老婆在写论文没时间陪我玩耍,借此时间来写个博客讲讲 kotlin中的接口,
接口
kotlin中的接口和java8提供的相似,既包含抽象方法的声明也包括,也包含实现。
与抽象类不同的是接口无法保存状态,它可以有属性但是必须声明为抽象或者是提供访问器实现。
- 接口的定义
定义接口使用的是interface关键字
interface MyInterface{
fun max:Int()
fun min:Int()
}
- 接口的实现
一个类或者是对象可以是想一个或者是多个接口
class Child:MyInterface{
override fun max(){
// 方法体
}
}
- 接口中的属性
你可以在接口中定义属性,但是属性要么是抽象的,要么是提供访问器实现,在接口中声明的属性不能有幕后字段,因此在接口中声明的访问器不能访问他们
interface MyInterface{
val prop:Int // 抽象的
val myprop:String
get() = "小黑"
}
- 接口的继承
一个接口是可以从其他的接口派生的,所以接口是可以继承的被继承的接口提供基本的方法和属性,继承的接口在此基础上进行覆盖
interface Named{
val name:String
}
interface Person:Named{
val lastname:String
val firstname:String
val name :String get() = "$firstname $lastname"
}
- 解决覆盖冲突