📜  kotlin 继承 - Kotlin (1)

📅  最后修改于: 2023-12-03 14:43:42.198000             🧑  作者: Mango

Kotlin 继承

Kotlin 是一种基于 JVM 的静态类型编程语言,拥有类和接口的概念,同样支持继承。

继承方式

Kotlin 中继承的形式和其他面向对象语言相似,基类使用 open 修饰符,子类使用 class 关键字并通过 : 指定基类。例如:

open class Animal {
    var name: String 
    constructor(name: String) {
        this.name = name
    }
    open fun makeSound() { // `open`用于允许派生类重写
        println("生物发出了声音")
    } 
}

class Cat(name: String) : Animal(name) {
    override fun makeSound() { // `override`用于重写父类函数
        println("喵喵喵")
    }
}

val cat = Cat("小猫")
cat.makeSound() // "喵喵喵"
重写

在 Kotlin 中,如果想要重写一个基类的函数或属性,需要在子类中使用 override 关键字,同时基类中的函数或属性使用 open 修饰符。例如:

open class Shape {
    open fun draw() {
        println("绘制图形")
    }
}

class Circle : Shape() {
    override fun draw() {
        println("绘制圆形")
    }
}

val shape: Shape = Circle()
shape.draw() // "绘制圆形"
继承和接口

Kotlin 中一个类只能继承一个类,但可以实现多个接口。语法如下:

interface Shape {
    fun draw()
}

interface Color {
    fun fill()
}

class Circle : Shape, Color {
    override fun draw() {
        println("绘制圆形")
    }
    override fun fill() {
        println("填充颜色")
    }
}

val circle = Circle()
circle.draw()
circle.fill()
总结

Kotlin 通过 openoverride 关键字实现了继承的功能,并支持多接口实现。对于面向对象编程开发人员,Kotlin 的继承使用起来很方便简洁。