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:类、构造函数、继承

相关推荐
符哥20083 小时前
新能源智能充电桩与 Android/iOS App 蓝牙通信协议
android·ios
JMchen1234 小时前
自定义View性能优化:从60fps到120fps的进阶之路
android·经验分享·性能优化·kotlin·自定义view
vistaup4 小时前
DevEco Studio 鸿蒙 HAR本地引入相互依赖问题解决
android·华为·harmonyos
常利兵5 小时前
Android 开发秘籍:用Tint为Icon动态变色
android
奔跑吧 android5 小时前
【车载audio】【CarAudioService 05】【车载 Android 系统调试深度指南:解析 dumpsys car_service】
android·audio·audioflinger·aosp15·车载音频·车载audio·car_service
shuangrenlong5 小时前
androidstudio gradle文件报红
android
Digitally5 小时前
如何通过蓝牙将 iPhone 上的照片传输到 Android
android·ios·iphone
常利兵5 小时前
Android Intent.setAction失效报错排查与修复全方案
android
耶叶5 小时前
Kotlin 的 Generics
kotlin
低调小一6 小时前
RecyclerView 缓存与复用机制:从一次滑动讲明白(2026 版)
android·recyclerview