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
编程语言