印章类

印章类又称为密封类,用来表示受限的类继承结构:当一个值为有限几种的类型, 而不能有任何其他类型时。使用​​sealed​​关键字修饰类,印章类可以有子类,但是所有的子类都必须要内嵌在印章类中

现有母驴、公驴、公马三只动物
母驴+公驴=驴子
母驴+公马=骡子

我们创建一个Son class来形容三只动物的儿子,由于只能是驴子,或骡子,所以我们加关键字​​sealed​

fun main(args: Array<String>) {
var son1:Son = Son.donkey()
var son2:Son = Son.mule()
var son3:Son = Son.donkey()

var list = listOf<Son>(son1,son2,son3)
for(s in list){
if(s is Son.donkey){
s.sayHello()
}
}

}

不能直接实例Son的,因为它有关键字​​sealed​​​,没有构造方法,所以这样写会报错
【Kotlin】枚举和印章类_构造方法
查看运行结果
【Kotlin】枚举和印章类_构造方法_02

枚举

enum class Week{
星期一,星期二,星期三,星期四,星期五,星期六,星期天
}

fun main(args:Array<String>){
println(Week.星期一.ordinal)
println(Week.星期天.ordinal)
}

【Kotlin】枚举和印章类_枚举_03

两者区别

【Kotlin】枚举和印章类_印章类_04