kotlin sealed关键字

kotlin sealed关键字sealedclass 只能有固定数量的子类 而且必须在当前类里边声明 sealedclass 的构造方法也是私有的 跟 object 比较像 enum 是定义有限的对象值 二 sealedclass 是定义有限的子类型 sealedclassM funaction println Iamasealedcl objectSonCla MySealedClas i

//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() }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226147.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午7:43
下一篇 2026年3月17日 上午7:43


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号