在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
类,它有两个子类:Circle
和 Rectangle
。这些子类都是在同一个文件中定义的,并且它们都是 Shape
的内部类。因此,它们可以继承 Shape
类。
如果你尝试在不同的文件中继承 Shape
类,编译器会报错,因为 Shape
类不允许这样做。