接口
接口:方法,属性或一段功能的蓝本
仅仅是规定实现的标准(抽象的)
通常用于对类进行附件功能,可以让类本身保持简洁的定义
通过实现1个或N个接口的组合,来实现非继承式的功能
接口定义: interface 接口名{//各种属性或方法定义}
interface Livable{
val hasSkill: Boolean
}
interface PeopleLivable{
//接口中的属性只有类型定义,不可初始化
val hasJob : Boolean
//接口中的属性可以有get,通常用于单纯增加一个常量属性
val visaCategory: String
get() = "A work visa"
//接口中的变量属性
var city: String
//接口中的方法
fun speakChinese()
//接口中的方法可以有默认实现,通常指该方法是固定不变的.
fun handleGuanxi(){
println("relation")
}
}
open class Person(){
var name = ""
}
//继承关系,并实现多个接口
class PeopleC: Person(),Livable,PeopleLivable{
override val hasSkill:Boolean
get() = true
override val hasJob: Boolean
get() = true
override var city = ""
override fun speakChinese(){
println("${this.name}说汉语")
}
}
fun main (args: Array<String>){
val tom = PeopleC()
tom.name = "汤姆"
tom.city = "china"
tom.speackChinese()
tom.handleGuanxi()
}
网友评论