android

android sealed类是否支持继承

小樊
83
2024-09-14 04:57:54
栏目: 编程语言

在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 类不允许这样做。

0
看了该问题的人还看了