18.接口(Interface)

接口
接口:方法,属性或一段功能的蓝本
仅仅是规定实现的标准(抽象的)
通常用于对类进行附件功能,可以让类本身保持简洁的定义
通过实现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){
       val tom = PeopleC()
       tom.name = "汤姆"
       tom.city = "china"
       tom.speackChinese()
       tom.handleGuanxi()
}

你可能感兴趣的:(18.接口(Interface))