Kotlin:为什么创建类不能被继承

一、为什么创建类不能被继承

class或data class 默认情况下,Kotlin 类是最终(final)的:它们不能被继承。

示例:data class PsersonBean

反编译data class PsersonBean 生成 public final class PsersonBean

示例:class User

反编译class User 生成** public final class User**

二、让类可继承的方式有几种

1. 用 open 关键字标记类

示例:open class Shape

继承示例:class Circle() : Shape()

2. 用abstract将类声明为抽象类

示例:abstract class Car

Testabstract.kt文件代码

bash 复制代码
abstract class Car {
    private var mPrice: String? = null

    fun setPrice(price: String?) {
        mPrice = price
    }

    fun getPrice(): String {
        return mPrice ?: "0.00"
    }

}

class M9SUVCar : Car() {
}

class U8SUVCar : Car() {
}

fun main() {
    val m9Car = M9SUVCar()
    m9Car.setPrice("46.80")

    val u8SUVCar = U8SUVCar()
    u8SUVCar.setPrice("109.80")
    
	println("M9SUVCar的价格:${m9Car.getPrice()} 万元")
    println("U8SUVCar的价格:${u8SUVCar.getPrice()} 万元")
}

运行结果

推荐

Kotlin:类、构造函数、继承

相关推荐
张风捷特烈8 分钟前
每日一题 Flutter#5,6 | 两道 Widget 选择题
android·flutter
移动开发者1号12 分钟前
App主界面点击与跳转启动方式区别
android·kotlin
移动开发者1号15 分钟前
我用Intent传大图片时竟然崩了,怎么回事啊
android·kotlin
androidwork12 小时前
Android LinearLayout、FrameLayout、RelativeLayout、ConstraintLayout大混战
android·java·kotlin·androidx
每次的天空12 小时前
Android第十三次面试总结基础
android·面试·职场和发展
wu_android12 小时前
Android 相对布局管理器(RelativeLayout)
android
李斯维14 小时前
循序渐进 Android Binder(二):传递自定义对象和 AIDL 回调
android·java·android studio
androidwork14 小时前
OkHttp 3.0源码解析:从设计理念到核心实现
android·java·okhttp·kotlin
莉樱Yurin15 小时前
Kotlin/CLR 让Kotlin走进.NET世界
kotlin
像风一样自由15 小时前
【001】frida API分类 总览
android·frida