首页 > 其他 > 详细

kotlin中对象表达式

时间:2018-12-19 12:22:29      阅读:184      评论:0      收藏:0      [点我收藏+]

在kotlin中,也有类似的功能,但不是匿名类,而是对象,需要使用object关键字,对象要继承的列需要与object之间的冒号(:)分隔.

fun main(arg: Array<String>) {
    process(MyClass("bill"))//输出verify

    process(object : MyClass("bill") {
        override fun verify() {
            super.verify()//输出verify
            println("object verify")//输出object verify
        }
    })
}

open class MyClass(name: String) {
    open var name = name
    open fun verify() {
        println("verify")
    }
}

fun process(obj: MyClass) {
    obj.verify()
}

对象和类一样,只能有一个父类,但可以实现多个接口

fun main(arg: Array<String>) {
    process(MyClass("bill"))//输出verify

    process(object : MyClass("bill"),myInterface {
        override fun verify() {
            super.verify()//输出verify
            println("object verify")//输出object verify
        }
    })
}

open class MyClass(name: String) {
    open var name = name
    open fun verify() {
        println("verify")
    }

}

fun process(obj: MyClass) {
    obj.verify()
    if(obj is myInterface){
        obj.closeData()//输出closeData
    }
}

interface myInterface{
    fun closeData(){
        print("closeData")//输出closeData
    }
}

如果只想建立一个对象,不想任何的类型,也不实现任何的接口,如下:

fun too() {
    val adc = object {
        var x: Int = 1
    }
    print(adc.x)
}

 

kotlin中对象表达式

原文:https://www.cnblogs.com/loaderman/p/10141983.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!