Kotlin 继承和实现
文章目录
- 前言
- 继承(extend)
- 实现(implement)
- 继承与实现
前言
在 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 | √ | √ |
相关文章:
Kotlin 继承和实现
文章目录 前言继承(extend)实现(implement)继承与实现 前言 在 Kotlin 中,继承和实现都是在类名后使用冒号:,后边加上其他类或接口的名称来表示,二者之间写法没有太大区别(类需要加…...
MATLAB误差估计扩展卡尔博斯方法的目录大纲
MATLAB误差估计扩展卡尔博斯方法的目录大纲 目录: 一、引言 1.1 背景介绍 1.2 研究意义 二、基本理论 2.1 误差估计的基本概念 2.2 卡尔博斯方法的基本原理 三、MATLAB误差估计扩展卡尔博斯方法 3.1 MATLAB简介 3.2 MATLAB在误差估计中的应用 3.3 MATLAB扩展卡尔…...
NetMizer 日志管理系统前台RCE漏洞
声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 一、产品介绍 NetMizer日志管理系统是一个与NetMizer流量管理设备配合…...
【spring】第二篇 bean实例化
对象已经能交给Spring的IOC容器来创建了,但是容器是如何来创建对象的呢? 就需要研究下bean的实例化过程,在这块内容中主要解决两部分内容,分别是 bean是如何创建的 实例化bean的三种方式,构造方法,静态工厂和实例工厂 在讲解这…...
MVC和MVVM
MVC Model层:用于处理应用程序数据逻辑的部分,通常负责在数据库中存取数据 View(视图)处理数据显示的部分。通常视图是依据模型数据创建的 Controller(控制器)是处理用户交互的部分。通常控制器负责从视…...
【康耐视国产案例】智能AI相机机器视觉精准快速实现包裹标签的智能粘贴
康耐视推出的3D-A1000是专业的、匹配物流行业各类分拣机及包裹检测应用的全功能视觉检测系统,其能够准确检测分拣机上是否有包裹、包裹是否超出边界、空车检测、是否有遗留物品等。由于搭载了专利的三维结构光技术,产品具有更强大的创新性以满足持续更新…...
发现真正的诉求
在不久前,我在负责一个项目,设计了一个方案。但是,与我一同合作的同事对其中的一个设计点持有异议。我们尝试讨论解决,但似乎没有找到共识。然而,尽管双方的观点没有达成一致,我们都清楚地表达了自己的想法…...
Spring Boot配置MySQL数据库连接数
1.如何在Spring Boot中配置MySQL数据库的连接数 1.1主要配置 在Spring Boot中配置MySQL数据库连接数通常涉及到两个主要的配置: (1)数据源配置:这通常是在application.properties或application.yml文件中完成的,用于…...
springboot595基于Java的大学生迎新系统-手把手调试搭建
springboot595基于Java的大学生迎新系统-手把手调试搭建 springboot595基于Java的大学生迎新系统-手把手调试搭建...
20 道大模型面试问题(含答案)
大型语言模型在生成式人工智能(GenAI)和人工智能(AI)中正变得越来越有价值。这些复杂的算法增强了人类的能力,并在各个领域促进了效率和创造力。 节前,我们组织了一场算法岗技术&面试讨论会࿰…...
【Java面试】四、MySQL篇(上)
文章目录 1、定位慢查询2、慢查询的原因分析3、索引3.1 数据结构选用:二叉树 & 红黑树3.2 数据结构选用:B树 4、聚簇索引、非聚簇索引、回表查询4.1 聚簇索引、非聚簇索引4.2 回表查询 5、覆盖索引、超大分页优化5.1 覆盖索引5.2 超大分页处理 6、索…...
【Python】collections模块:高效处理数据的利器
Python中的collections模块:高效处理数据的利器 Python的collections模块是一个内置模块,它提供了一些专用的容器数据类型,作为Python通用内置容器(如列表list、字典dict、集合set和元组tuple)的替代品。本文将深入探…...
Vue3实战笔记(51)—Vue 3封装带均线的k线图
文章目录 前言带均线的k线图总结 前言 继续封装一个封装带均线的k线图 带均线的k线图 EChartsCandlestickSh.vue: <template><div ref"chartContainer" style"width: 100%; height: 500px"></div></template><scr…...
信息与未来2015真题笔记
[信息与未来 2015] 加数 题目描述 给出一个正整数 n n n,在 n n n 的右边加入 ⌊ n 2 ⌋ \left\lfloor\dfrac n2\right\rfloor ⌊2n⌋,然后在新数的右边 再加入 ⌊ ⌊ n 2 ⌋ 2 ⌋ \left\lfloor\dfrac{\left\lfloor\dfrac n2\right\rfloor}2\rig…...
【成功解决】Access token invalid or no longer valid
项目场景: python调用文心一言对应的ERNIE-4.0-8K模型API接口,方式为单次调用 问题描述 提示: “error_code”: 110, “error_msg”: “Access token invalid or no longer valid” C:\Users\PUB\AppData\Local\Programs\Python\Python38-…...
【Bug】修改计算机名称出现ip无法连接mysql数据库
解决: mysql -u root -p输入密码登录mysql服务器,那个ip是本机ip4的地址单ip放行。推荐全部,后面123456是密码 GRANT ALL PRIVILEGES ON *.* TO root192.168.0.109 IDENTIFIED BY 123456; 全部IP都放行 GRANT ALL PRIVILEGES ON *.* …...
米尔MYC-Y6ULX-V2开发板测评记录
文章目录 1、板子上手体验2、板载硬件3、系统信息4、 驱动测试5、编译linux三大件7、摄像头测试9、总结 1、板子上手体验 首先非常感谢芯查查给了这样一个机会来测评这样一款性能十分强大的开发板,我拿到手的是MYC-Y6ULX-V2核心板及开发板,这块板子具有…...
装修全流程
Summary 从2023年底到现在(2024年6月2日),装修可以定的东西基本过半了,我按照时间顺序把每个环节的内容和想法都记录一下 环节 选装修公司、找设计师设计环节预算计算角色介绍建材选型敲墙和开工水电放样泥工木工放样To be cont…...
探索微软Edge
微软开发的官方浏览器 Microsoft Edge是微软基于 Chromium 开源项目及其他开源软件开发的网页浏览器。 2015年4月30日,微软在旧金山举行的Build 2015开发者大会上宣布——Windows 10内置代号为“Project Spartan”的新浏览器被正式命名为“Microsoft Edge”&#x…...
Java面试——专业技能
优质博文:IT-BLOG-CN 一、简单讲下 Java 的跨平台原理 由于各个操作系统(Windows,Linux等)支持的指令集不是完全一致的。就会让我们程序在不同的操作系统上要执行不同的程序代码。Java 开发了适用于不同操作系统及位数的 Java 虚拟…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
