Kotlin 继承和实现

前言

在 Kotlin 中,继承和实现都是在类名后使用冒号:,后边加上其他类或接口的名称来表示,二者之间写法没有太大区别(类需要加括号,而接口不用)。

class 类名: 其他类(), 接口

一个类只能继承一个类,但可以实现多个接口。

继承和实现都可以从一个类或接口中得到公开public或受保护protected的属性或方法的方式。

在继承、实现类中,可以通过super来访问继承类、实现接口中公开public或受保护protected的属性、方法和构造函数:

open class Water(val temperature: Double) {
    open fun mixWithCoke() = println("可乐兑水")
}

class Ice: Water {
	// 父类构造
    // 当然,我们一般写在类上就行:
    // class Ice: Water(-10.0)
    constructor():super(-10.0)


    override fun mixWithCoke() {
    	// 调用父类方法
        super.mixWithCoke()
        print("可乐加冰")
    }
}


fun main() {
    val ice = Ice()

	// 可以继承父类的属性
    println(ice.temperature)
    // 我们只调用了可乐加冰
    // 而在冰兑可乐中调用了父类的水兑可乐
    ice.mixWithCoke()
}
-10.0
可乐兑水
可乐加冰

继承(extend)

继承通常是是对类class而言的。一个类继承自另一个类,被继承的类称为父类,而继承类称为子类

  • 在 Kotlin 中,所有类默认继承自Any,因此称Any为所有类的父类,所有类为Any的子类。
  • 接口interface不能继承类class

实现(implement)

实现通常是对接口interface而言的。一个类实现了某个接口,该类称为接口的实现类。

继承与实现

继承类被继承实现接口
普通类class×
普通类open class
抽象类abstract class
密封类sealed class
数据类data class×
枚举类enum class×
内联值类@JvmInline value class××
对象object×
接口实现接口被实现
普通接口interface
密封接口sealed interface
函数接口fun interface
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值