Kotlin 特殊类与类型系统深入解析
1. 子类与抽象类
在 Kotlin 里,我们能够定义抽象类并从类继承,以此对数据建模并创建类层次结构。这在概念上和 Java 类似,但在实现机制上存在一些差异。
若要定义一个实现接口却未为所有必需方法提供实现的类,可将该类标记为抽象类,示例如下:
interface Shape {
fun getArea() : Double
}
abstract class Rectangle : Shape
Kotlin 中的类默认是封闭的。这意味着,若要扩展一个类,就必须使用 open
关键字。此关键字会告知编译器该类可被扩展:
open class Rectangle(
val width: Double,
val height: Double
) : Shape {
override fun getArea() = width * height
}
将 Rectangle
标记为 open
后,它就能被扩展了,例如:
class Square(val edgeLength: Double) : Rectangle(edgeLength, edgeLength)
方法默认也是封闭的。所以,要