码迷,mamicode.com
首页 > 其他好文 > 详细

kotlin中对象表达式

时间:2018-12-19 13:09:26      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:对象   对象表达式   使用   ring   data   array   style   super   adc   

在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中对象表达式

标签:对象   对象表达式   使用   ring   data   array   style   super   adc   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!