kotlin的sealed密封类和enum枚举类

kotlin的sealed密封类和enum枚举类

例如:

sealed class ProgrammingLang {
    var tag: String = "编程语言"

    object KOTLIN : ProgrammingLang()
}

class Java(name: String) : ProgrammingLang() {
    init {
        println(name)
    }
}


/**
 * 枚举和密封类功能上很相近。
 * 反编译ComputerLang生成的java class字节码后会发现,ComputerLang 继承自 Java标准的Enum。
 * 单继承限制,枚举类无法继承 Enum 以外的其他类。
 */
enum class ComputerLang {
    JAVA, CPP, PYTHON
}

fun main(args: Array<String>) {
    var j = Java("java")
    println(j.tag)

    println(ComputerLang.PYTHON)
    println(ProgrammingLang.KOTLIN.tag)
}

输出:

java
编程语言
PYTHON
编程语言

猜你喜欢

转载自blog.csdn.net/zhangphil/article/details/129327834
今日推荐