zoukankan      html  css  js  c++  java
  • kotlin中对象表达式

    在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)
    }
  • 相关阅读:
    iOS:CALayer锚点的使用
    iOS:UIView的CALayer基本演练
    iOS:iOS中的几种动画
    iOS:CALayer核心动画层
    Objective-C:KVO机制
    Objective-C:KVC机制
    投资方式集汇
    曝光卖假币的店铺和旺旺ID
    android 的开源输入法介绍,及 自动触摸的实现方法
    Intra Refresh of H264 encoder
  • 原文地址:https://www.cnblogs.com/loaderman/p/10141983.html
Copyright © 2011-2022 走看看