1. 程式人生 > >從零開始學Kotlin-使用接口(7)

從零開始學Kotlin-使用接口(7)

如何 mark android interface inter rand 兩個 blog dtw

從零開始學Kotlin基礎篇系列文章

定義接口

  • 使用關鍵字interface定義接口

    interface InterfaceDemo7 {
    }
  • 類或對象可以實現一個或者多個接口

    class demo7 : InterfaceDemo7 {
    }
    class demo : InterfaceDemo71, InterfaceDemo72 {
    }

接口中定義屬性

  • 接口中的屬性只能是抽象的,不允許初始化值

    interface InterfaceDemo7 {
        val name: String
        var gender:String
    }
  • 類實現接口的屬性:接口中的屬性只能是抽象的,不允許初始化值,接口不會保存屬性值,實現接口時,必須重寫屬性

    class demo7 : InterfaceDemo7 {
        override val name: String = "SiberiaDante"
        override var gender: String = "男"
    }

接口中定義方法

  • 接口中定義方法,方法可以直接被實現,也可以不實現

    interface InterfaceDemo7 {
        fun voidOne()//定義一個方法,子類必須要實現該方法
        fun voidTwo() {//定義一個方法,並實現;子類可以不實現該方法
            print("接口已經實現了這個方法")
        }
    }
  • 類實現接口並實行其中的方法

    class demo7 : InterfaceDemo7 {
        override fun voidOne() {//實現接口中未實現的方法子類必須要實現
        }
    //      override fun voidTwo() {//接口中實現的方法,子類可以不實現
    //          super.voidTwo()
    //    }
    }
  • 類實現多個接口,且接口有一個共同的方法,需要指明類如何實現它們:使用super.<接口名>.方法名指定使用哪個方法

    interface InterfaceDemo71 {
        fun showName()
        fun showAge() {
            print(18)
        }
    }
    interface InterfaceDemo72 {
        fun showName() {
            print("SiberiaDante")
        }
        fun showAge() {
            print(18)
        }
    }
    class demo : InterfaceDemo71, InterfaceDemo72 {
        override fun showName() {
        }
        override fun showAge() {//兩個接口都有showAge()方法
            super<InterfaceDemo71>.showAge()//使用super.<接口名>.方法名指定使用哪個方法
            super<InterfaceDemo72>.showAge()
        }
    }

從零開始學Kotlin-使用接口(7)