【Kotlin】枚举和印章类

印章类

印章类又称为密封类,用来表示受限的类继承结构:当一个值为有限几种的类型, 而不能有任何其他类型时。使用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,没有构造方法,所以这样写会报错
在这里插入图片描述
查看运行结果
在这里插入图片描述

枚举

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

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

在这里插入图片描述

两者区别

在这里插入图片描述

发布了640 篇原创文章 · 获赞 143 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/u010356768/article/details/103031247