1、kotlin定义接口
kotlin使用关键字 interface 来定义接口
接口可以有属性和函数两个元素组成。
接口函数是可以实现的
interface Human{
//属性元素
val gender:Int
fun human(){
//具体实现
}
}
2、接口使用
class Woman:Human{
override fun human() {
super.human()
}
override var gender: Int
get() = 100
set(value) {}
}
class Man(override var gender: Int) :Human{
override fun human() {
super.human()
}
}
var woman = Woman()
woman.gender = 0
woman.human()
Man(1).human()
日志输出
woman,s woman()
man,s man()
3、属性使用
interface China{
val name:String
}
interface ZheJiang : China{
val allName:String
val easyName:String
override val name: String
get() = "easyName"
}
class HangZhou : ZheJiang{
override val allName: String
get() = "浙江"
override val easyName: String
get() = "浙"
fun test(){
println(name)
}
}
使用
HangZhou().test()
日志输出
浙江 浙
4、函数覆盖问题
interface Xihu{
fun play(){
println("Xihu-play")
}
}
interface Scenicspot{
fun play(){
println("Scenicspot-play")
}
}
class LongXiangQiao : Xihu,Scenicspot{
override fun play() {
super<Xihu>.play()
super<Scenicspot>.play()
}
}
/**
* 方法覆盖
*/
LongXiangQiao().play()
日志输出
Xihu-play
Scenicspot-play