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)
    }
  • 相关阅读:
    spring 解析bean
    Spring Cloud
    Spring
    JDK动态代理源码实现深入分析
    一个很坑的问题,button 的onclick方法失效了
    web总结
    字符串编码
    海量数据的解决方案--笔记
    链接保存
    读《JVM虚拟机》- 集中简单的垃圾收集算法
  • 原文地址:https://www.cnblogs.com/loaderman/p/10141983.html
Copyright © 2011-2022 走看看