Kotlin-10.接口(interface)

官方文档: http://kotlinlang.org/docs/reference/interfaces.html

1.定义接口

Kotlin接口非常类似于Java 8,既可包含方法声明,也包含方法实现!
可以有属性,但只能声明为抽象或提供访问器实现!
与Java一样,使用关键字interface定义接口:
    interface MyInterface {
        fun bar() // 方法声明,抽象方法
        fun foo() {
            // 方法实现,非抽象方法
        }
    }

2.实现接口

类或者对象可以实现一个或多个接口:
    class Child : MyInterface {
        override fun bar() {
            // 方法体
        }
    }

3.接口属性

在接口中的属性既可以是抽象的,也可以有访问器的实现,
但不能有幕后字段(backing field),因此访问器不能引用它们。
    interface MyInterface {
        val prop: Int // 抽象abstract,不能初始化

        val property: String
            get() = "foo" // 有访问器的实现,非抽象

        fun foo() {
            print(prop)
        }
    }

    class Child : MyInterface {
        override val prop: Int = 29
    }

4.多接口覆盖冲突

实现多个接口时,可能会遇到[覆盖多个接口中同名方法]的问题:
    interface A {
        fun foo() { print("A") }
        fun bar()
    }

    interface B {
        fun foo() { print("B") }
        fun bar() { print("bar") }
    }        

    class C : A, B {
        override fun foo() {
            // 多覆盖
            super<A>.foo()
            super<B>.foo()
        }

        override fun bar() {
            // 单覆盖
            super<B>.bar()
        }
    }

简书: //www.greatytc.com/p/88e9df011af9
CSDN博客: http://blog.csdn.net/qq_32115439/article/details/73522216
GitHub博客:http://lioil.win/2017/06/20/Kotlin-interfaces.html
Coding博客:http://c.lioil.win/2017/06/20/Kotlin-interfaces.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 大部分的后端会很很鄙视前端。我也不知道为什么,可能大部分人都会觉得脚本语言根本不算语言。 大多人 会叫我们切图仔,...
    小黑的眼阅读 3,451评论 0 15
  • “是谁来自山川湖海,却囿于昼夜厨房与爱”,最近偶得的一句,喜欢它悠远的意境和饱满的画面。 山川湖海有美丽诗意,昼夜...
    踏月而来一树白阅读 1,031评论 0 0
  • 我拥抱自己,不再哭泣 终有一散也别辜负相遇 或许 不再是一直 我的身边都是你 我愿放手 给予你梦的自由 秋季的枯桠...
    Ainolla阅读 259评论 1 3
  • 假期总结 我可以用又累又惊吓一点点欣慰哇塞再来超级遗憾来形容我的小假期吗 累。 我三天上着闹钟的, 怕自己一觉睡到...
    鱼羊野人阅读 507评论 0 1
  • 情商EQ(EmotionQuo-tient)即情绪商数,也就是我们平时所说的非智力因素,它包括自我认识、情绪管理、...
    脑力科技阅读 256评论 0 1