美文网首页
18.接口(Interface)

18.接口(Interface)

作者: 木子心语 | 来源:发表于2017-09-28 18:23 被阅读0次
    接口
    接口:方法,属性或一段功能的蓝本
    仅仅是规定实现的标准(抽象的)
    通常用于对类进行附件功能,可以让类本身保持简洁的定义
    通过实现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()
    }
    
    

    相关文章

      网友评论

          本文标题:18.接口(Interface)

          本文链接:https://www.haomeiwen.com/subject/iuuuextx.html