Kotlin 类与对象及函数式编程特性解析
一、密封类(Sealed classes)
密封类是一种具有有限子类数量的类,它构建了一个密封的子类型层次结构。在 Kotlin 1.1 之前,密封类的子类必须定义在密封类的主体内部。Kotlin 1.1 放宽了这一限制,允许在与密封类声明相同的文件中定义其子类。这样一来,所有相关类都紧密声明在一起,我们只需查看一个文件就能轻松了解所有可能的子类。
例如,在 vehicle.kt 文件中:
sealed class Vehicle()
class Car : Vehicle()
class Truck : Vehicle()
class Bus : Vehicle()
要将一个类标记为密封类,只需在类声明的头部添加 sealed 修饰符。上述声明表明 Vehicle 类只能由 Car 、 Truck 和 Bus 这三个类扩展,因为它们都在同一个文件中声明。虽然我们可以在 vehicle.kt 文件中添加第四个类,但无法在其他文件中定义这样的类。
密封子类型的限制仅适用于 Vehicle 类的直接继承者。也就是说, Vehicle 只能由同一文件中定义的类(如 Car 、 Truck 或 B
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



