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

相关推荐
赏金术士1 小时前
Android 项目模块化与 Feature 组件实践
android·kotlin·模块化
_qingche5 小时前
H2 数据库到 MySQL 数据迁移
java·数据库·spring boot·mysql·spring·重构·kotlin
summerkissyou19875 小时前
Android-UI-获取屏幕尺寸的方法
android·ui
用户86022504674725 小时前
Kotlin 函数式编程入门与实践指南
android
最爱睡觉睡觉睡觉7 小时前
CSS → Flutter 对照手册
android·前端
xingpanvip8 小时前
星盘接口开发文档:马盘次限盘接口指南
android·开发语言·python·php·lua
用户26190498561578 小时前
JUnit4 完整配置流程
android
用户26190498561578 小时前
JaCoCo 完整配置流程
android
QING6189 小时前
Android面试 —— 八股文之app启动流程
android·面试·app
海鸥-w9 小时前
python(fastapi) 实现更新,新增,删除接口
android·python·fastapi