58.密封类

作者: 写代码的向日葵 | 来源:发表于2019-10-05 01:53 被阅读0次

1.用法代码如下:

fun main(args: Array<String>) {
    val stark1 = NedStark.RobStark()
    val hasRight = hasRight(stark1)
    println(hasRight)

    val jonSnow = JonSnow()
    println(hasRight(jonSnow))
}

/**
 * 判断有没有继承权
 * 先把有继承权的(数量固定)放在一起,其它的不关心
 */
fun hasRight(nedStark: NedStark): Boolean {
    return when (nedStark) {
        is NedStark.RobStark,
        is NedStark.SansaStrk,
        is NedStark.AryaStark,
        is NedStark.BrandonStark -> true
        else -> false
    }
}

sealed class NedStark {
    class RobStark : NedStark()
    class SansaStrk : NedStark()
    class AryaStark : NedStark()
    class BrandonStark : NedStark()
}

class JonSnow : NedStark()

2.输出结果如下:

image.png
  • 密封类封装的是类型 类型是确定的
  • 枚举封装的是数据,表示数据元素个数是确定的

相关文章

  • 58.密封类

    1.用法代码如下: 2.输出结果如下: 密封类封装的是类型 类型是确定的 枚举封装的是数据,表示数据元素个数是确定的

  • 12.Kotlin泛型与协变及逆变原理剖析

    1.密封类 密封类(sealed class)①密封类用来表示受限的类继承结构,对密封类中的某个值来说,它所属类型...

  • 密封类

    密封类:断子绝孙 如果我们的类是密封类,那么就意味着不能有任何派生类。 但是密封类是可以拥有父类 C#中密封类使用...

  • 密封类,密封方法

    密封:sealed 对于类,不能被继承(任何类都不能继承) 对于方法不能被重写。 “sealed”,只能写在重写的...

  • 密封类

    using System; namespace _密封类 { class MainClass { public s...

  • 密封类

    密封类的关键词为sealed 他是一种特殊的抽象类,无法被实例化。 它的构造函数是private的,这将使其只能在...

  • Kotlin 密封类 Sealed的总结

    概念sealed修饰的类 在kotlin中是密封类 密封类 描述的是 父类和子类的关系1、密封类和它的子类必须定义...

  • Android MVI 设计模式(3)

    我们用 kotlin 的 sealed 类密封一些数据类,kotlin 提供的密封类类似于枚举,密封类用于定义一种...

  • Kotlin学习之密封类

    Kotlin学习之密封类 密封类是Kotlin中的一个高级类,有如下特点: 密封类是为继承设计的,是一个抽象类; ...

  • kotlin sealed密封类

    kotlin中sealed关键字修饰的类就是密封类。密封类其实是一种特殊的抽象类,专门用于派生子类的。 密封类的特...

网友评论

    本文标题:58.密封类

    本文链接:https://www.haomeiwen.com/subject/cvlepctx.html