栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

kotlin sealed关键字

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号