在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
類不允許這樣做。