android sealed类是否支持继承

avatar
作者
筋斗云
阅读量:0

在Android中,sealed 类是一种特殊的类,它限制了类的继承能力。sealed 类只能被定义在同一个文件中的其他类或者嵌套类继承。这意味着,如果你想要继承一个 sealed 类,你需要在同一个文件中定义子类,并将其放在 sealed 类的内部。

例如:

// 文件:SealedExample.kt  sealed class Shape {     data class Circle(val radius: Double) : Shape()     data class Rectangle(val width: Double, val height: Double) : Shape() }  fun main() {     val circle = Shape.Circle(5.0)     val rectangle = Shape.Rectangle(4.0, 6.0) } 

在这个例子中,Shape 是一个 sealed 类,它有两个子类:CircleRectangle。这些子类都是在同一个文件中定义的,并且它们都是 Shape 的内部类。因此,它们可以继承 Shape 类。

如果你尝试在不同的文件中继承 Shape 类,编译器会报错,因为 Shape 类不允许这样做。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!