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文件代码

abstract class Car {private var mPrice: String? = nullfun 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")
}

运行结果
在这里插入图片描述

推荐

Kotlin:类、构造函数、继承

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

材料科学类3区SCI,仅13天超快上线见刊,国人友好!!

录用案例 JCR3区材料类SCI (3.31截稿) 【期刊简介】IF:3.0-4.0,JCR3区,中科院4区; 【检索情况】SCI在检; 【征稿领域】低温环境下新型生物降解材料的开发相关或结合研究均可; 【案例分享】重要时间节点…

数据类型(面向对象)

一.基本数据类型 Java中的基本数据类型包括八种,它们都是Java语言内置的,可以直接使用。这八种基本数据类型分别是: byte:字节类型,占用1个字节(8位),取值范围从-128到127。short&…

蓝桥杯 java b组 2015年省赛第六届 九数组分数

一、题目 九数组分数 1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码 public class A { public static void test(int[] x) { int a x[0]*100…

伪分布式Spark集群搭建

一、软件环境 软 件 版 本 安 装 包 VMware虚拟机 16 VMware-workstation-full-16.2.2-19200509.exe SSH连接工具 FinalShell Linux OS CentOS7.5 CentOS-7.5-x86_64-DVD-1804.iso JDK 1.8 jdk-8u161-linux-x64.tar.gz Spark 3.2.1 spark-3.2.1-bin-…

PostgreSQL YUM安装

docker中的centos7中安装 选择对应的版本然后在容器中的centos7中执行下面命令 但是启动容器的时候需要注意 开启端口映射开启特权模式启动init进程 docker run -itd --name centos-postgresql -p 5433:5432 --privilegedtrue centos:centos7 /usr/sbin/init 启动然后进入后先…

java SSM在线学习网站系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM在线学习网站系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用…

【基于HTML5的网页设计及应用】——改变文字和背景颜色

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

有手就会Python自定义模块使用

1.自定义模块 自定义模块一般是在项目中根据自己的需求进行的封装 项目中自定义了额一个模块,module.py name "张三" age 23 weight 160 height 187 def test(): print("测试的方法") def demo(): print("天使的眼泪") …

html5cssjs代码 002 50以内的加法算式

html5&css&js代码 002 一些基本概念 50以内的加法算式 一、代码二、解释 50以内的加法算式。 一、代码 <!DOCTYPE html> <html lang"en"> <head><title>50以内的加法算式</title><meta charset"UTF-8"><m…

2024年Twitter上最值得关注的26名顶级程序员

2023年7月23日&#xff0c;在Twitter发布17年后&#xff0c;马斯克在Twitter上表示&#xff0c;是时候将该平台更名为X了。 对很多人来说&#xff0c;Twitter是一个分享他们对社会新闻或人生重大事件的想法的地方&#xff0c;这里也是紧跟文化潮流、获取全球最新消息的最佳方式…

如何更简捷地在 Java 中进行函数式编程

public static void findNemo(List names) { boolean found false; for(String name : names) { if(name.equals(“Nemo”)) { found true; break; } } if(found) System.out.println(“Found Nemo”); else System.out.println(“Sorry, Nemo not found”); } …

392.判断子序列

题目&#xff1a;给定字符串s和t&#xff0c;判断s是否为t 的子序列。 字符串的一个子序列是原始字符串删除一些字符而不改变剩余字符相对位置形成的新字符串。 解题思路&#xff1a;s是否是 t 的子序列&#xff0c;因此只要能找到任意一种 s 在 t 中出现的方式&#xff0c;即…

代码随想录day19(1)二叉树:完全二叉树节点个数(leetcode222)

题目要求&#xff1a;求一个完全二叉树的节点个数 思路&#xff1a;首先完全二叉树可以用普通二叉树的方法来求&#xff0c;但是需要遍历所有的节点。 但是对于完全二叉树来说&#xff0c;只有最底层右侧的节点可能没满&#xff0c;其余每层节点都达到了最大值。所以我们可以…

C++中PostMessage和SendMessage函数的用途、区别、使用方法及使用示例

在C的Windows编程中&#xff0c;PostMessage和SendMessage是用于进程间通信&#xff08;IPC&#xff09;的重要函数&#xff0c;特别是在同一应用程序的不同部分或不同应用程序之间发送消息时。这两个函数都用于向窗口发送消息&#xff0c;但它们在发送方式和行为上有所不同。 …

Nwatch在stm32上的移植

目录 Nwatch在stm32上的移植前言实验目的移植game1_task任务相关代码片段结果本文中使用的工程 Nwatch在stm32上的移植 本文目标&#xff1a;Nwatch在stm32上的移植 按照本文的描述&#xff0c;应该可以跑通实验并举一反三。 先决条件&#xff1a;装有编译和集成的开发环境&…

代码随想录算法训练营第四十四天|动态规划|完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ

完全背包 文章 一维 只有一个物品时 尽可能多装 dp[j]max( dp[j] (一般0) , dp[j-weight[0]]value[0] (要求j>weight[0]) ) 下一层 dp[j]max (dp[j] , dp[j-weight[i]] valuw[i] ) 从前往后遍历&#xff1a;因为腾一件value更高就腾&#xff0c;至于腾一件后里面包含几件都…

Vue-- 实现简单版 vue-router

实现简单版vue-router3 前置知识&#xff1a; 1、vue 插件机制 &#xff1a; vue.use(arg) arg可以是一个函数和对象&#xff0c;需要有一个install方法&#xff0c;如果是函数&#xff08;没有install方法&#xff09;&#xff0c;则直接执行该函数。install 方法第一个参数…

Linux进程状态

目录 1.R运行状态&#xff08;running&#xff09; 2.S睡眠状态&#xff08;sleep&#xff09; 3.T或t状态&#xff08;stopped 或 tracing stop&#xff09; 4.Z状态&#xff08;zombie&#xff09;&#xff08;僵尸进程&#xff09; 1.R运行状态&#xff08;running&…

exec 和 xargs 命令的用法区别,优缺点

exec 和 xargs 都是用于执行命令的工具&#xff0c;但它们有不同的特点、用法和优缺点。 exec 命令特点和用法&#xff1a; 特点&#xff1a; exec 命令是由 find 命令提供的一个选项&#xff0c;它允许在 find 命令查找到的文件上执行指定的命令。exec 将对 find 查找到的每一…

通过Spring Boot 实现页面配置生成动态接口?

流程介绍 在Spring Boot中实现页面配置生成动态接口通常涉及几个关键步骤: 设计页面配置:首先,你需要设计一个用户界面(UI),允许用户通过此界面来配置接口的各种参数,例如HTTP方法(GET、POST等)、URL路径、请求参数、响应数据格式等。保存配置信息:当用户通过页面配置…