kotlin

58.密封类

2019-10-05  本文已影响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
上一篇 下一篇

猜你喜欢

热点阅读