zoukankan      html  css  js  c++  java
  • 从零开始学Kotlin-使用接口(7)

    从零开始学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()
            }
        }
    
  • 相关阅读:
    洛谷 P1628 合并序列
    洛谷 P3378 【模板】堆
    浅谈可删除堆
    浅谈数据结构—分块
    浅谈对顶堆
    JDOJ 1929: 求最长不下降序列长度
    JDOJ 1928: 排队买票
    Leetcode(53)-最大子序和
    Leetcode(38)-报数
    Leetcode(35)-搜索插入位置
  • 原文地址:https://www.cnblogs.com/shen-hua/p/8364877.html
Copyright © 2011-2022 走看看