Scala 密封类
如果想让case类的所有子类都必须在申明的该类的相同的文件中定义,可以将样例类的通用超类声明为sealed,叫做密封类,密封就是外部用户不能在其他文件中定义子类。不能被继承只能自己用
sealed abstract class TrafficLightColor
case object Red extends TrafficLightColor
case object Yellow extends TrafficLightColor
case object Green extends TrafficLightColor
尖叫提示:密封类,只能在同一个文件中定义子类。
一般情况下Scala 中 在同一个package下面 比如在A.scala 文件中定义了抽象类A,则 可以在A.scala文件中定义 继承子类 比如 case class B /object B extends A。 但是如果A在声明的时候加入了sealed 则,A的子类只能在本文件声明。同package下别的文件声明会报错。
关注公众号 海量干货等你
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步