在 Kotlin 中,密封類(sealed class)是一種限制其子類的類。這意味著密封類只能被它的直接子類繼承,而不能被其他任意類繼承。要實現繼承,您需要遵循以下步驟:
sealed
關鍵字修飾。以下是一個簡單的示例:
// 定義一個密封類 Shape
sealed class Shape {
data class Circle(val radius: Double) : Shape()
data class Rectangle(val width: Double, val height: Double) : Shape()
}
// 創建一個子類 Circle,繼承自 Shape
class MyCircle(radius: Double) : Shape.Circle(radius) {
fun getArea(): Double {
return Math.PI * radius * radius
}
}
// 創建另一個子類 Rectangle,繼承自 Shape
class MyRectangle(width: Double, height: Double) : Shape.Rectangle(width, height) {
fun getArea(): Double {
return width * height
}
}
fun main() {
val circle = MyCircle(5.0)
println("Circle area: ${circle.getArea()}")
val rectangle = MyRectangle(4.0, 6.0)
println("Rectangle area: ${rectangle.getArea()}")
}
在這個示例中,我們定義了一個密封類 Shape
,它有兩個子類:MyCircle
和 MyRectangle
。這些子類繼承了 Shape
類并實現了自己的 getArea()
方法。在 main()
函數中,我們創建了這兩個子類的實例并計算了它們的面積。