溫馨提示×

android sealed類是否支持繼承

小樊
81
2024-09-14 04:57:54
欄目: 編程語言

在Android中,sealed 類是一種特殊的類,它限制了類的繼承能力。sealed 類只能被定義在同一個文件中的其他類或者嵌套類繼承。這意味著,如果你想要繼承一個 sealed 類,你需要在同一個文件中定義子類,并將其放在 sealed 類的內(nèi)部。

例如:

// 文件: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 的內(nèi)部類。因此,它們可以繼承 Shape 類。

如果你嘗試在不同的文件中繼承 Shape 類,編譯器會報錯,因為 Shape 類不允許這樣做。

0