V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Newyorkcity
V2EX  ›  问与答

kotlin 中的密封类到底是一个什么意义和设计意图?

  •  
  •   Newyorkcity · 2020-10-24 12:35:00 +08:00 · 1148 次点击
    这是一个创建于 1280 天前的主题,其中的信息可能已经有所发展或是发生改变。

    所谓受限的类继承结构,即当类中的一个值只能是有限的几种类型,而不能是其他的任何类型。

    什么叫类中的一个值?

    我粗暴地理解为一个值就是指一个成员。那成员只能是有限的几种类型?成员声明的时候不是都直接定死为一种类型了吗,还“有限的几种类型”。

    密封类和普通的类,open 的类,除了不能实例化外到底在设计意图和意义上区别在哪里啊?

    3 条回复    2020-10-24 14:03:45 +08:00
    maninfog
        1
    maninfog  
       2020-10-24 12:55:31 +08:00 via Android
    sealed class 结合 when 使用很香,特别是在做一些业务设计的时候。可以看看这个视频:
    billlee
        2
    billlee  
       2020-10-24 13:00:51 +08:00   ❤️ 1
    Sealed class 是指他的子类类型是有限的,他的所有子类都要在同一个文件中定义,其它文件中不能定义这个类的子类。常用来代替 enum.

    少看乱七八糟的中文翻译吧,尤其是翻译错的。
    Newyorkcity
        3
    Newyorkcity  
    OP
       2020-10-24 14:03:45 +08:00
    @maninfog 额 连接已重置 可以在视频的地址里加点中文干扰一下 v 站自动处理么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2755 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:23 · PVG 23:23 · LAX 08:23 · JFK 11:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.