本文主要是介绍kotlin sealed关键字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//sealed class只能有固定数量的子类,而且必须在当前类里边声明
//sealed class的构造方法也是私有的,跟object比较像
//enum是定义有限的对象值,二sealed class是定义有限的子类型
sealed class MySealedClass {fun action(){println("I am a sealed class")}object SonClass1 : MySealedClass(){init{println("SonClass1 was created")}}class SonClass2: MySealedClass(){init {println("SonClass2 was created")}}
}fun main(){//MySealedClass.SonClass1 这里他代表MySealedClass.SonClass1的单例实例,因为他是用object修饰的,在类加载时,就会创建一个全局实例MySealedClass.SonClass1.action()
// 会报错,提示构造方法私有,不能直接调用//MySealedClass()//SonClass2这个内部类虽然没有通过object标记,但是也可以通过外部类名来直接访问,说明SonClass2也是静态的。跟使用object的区别是,这里可以定义多个SonClass2的实例var son1 = MySealedClass.SonClass2()var son2 = MySealedClass.SonClass2()
}
这篇关于kotlin sealed关键字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!