继承

由于kotlin中所有类和方法默认都是final的,不能直接继承或重写,需要在继承的类或类中要重写的方法之前添加open关键字

open class View {
    open fun click() = println("View clicked")
}

class Button: View() {
    override fun click() = println("Button clicked")
}

fun main(args: Array<String>) {
    val view: View = Button()
    view.click()
}

kotlin中所有类都有一个共同的父类: Any(注意这不是java.lang.Object), 这个类只有equals(), hashCode(), toString()方法。
kotlin与java一样,只能单继承,但可以实现多个接口。

扩展函数是静态加载的,与类或实例无关。

fun View.showOff() = println("I'm a view!")
fun Button.showOff() = println("I'm a button!")
val view: View = Button()
view.showOff() //结果是 I'm a view!

 

posted @ 2018-05-12 22:12  南极冰川雪  阅读(126)  评论(0编辑  收藏  举报