温馨提示×

Kotlin密封类如何实现继承

小樊
81
2024-10-30 22:33:40
栏目: 编程语言

在 Kotlin 中,密封类(sealed class)是一种限制其子类的类。这意味着密封类只能被它的直接子类继承,而不能被其他任意类继承。要实现继承,您需要遵循以下步骤:

  1. 定义一个密封类,使用 sealed 关键字修饰。
  2. 创建一个或多个子类,它们继承自密封类。
  3. 在子类中,您可以添加属性和方法。

以下是一个简单的示例:

// 定义一个密封类 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,它有两个子类:MyCircleMyRectangle。这些子类继承了 Shape 类并实现了自己的 getArea() 方法。在 main() 函数中,我们创建了这两个子类的实例并计算了它们的面积。

0