当前位置: 首页 > news >正文

【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口

【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口

为什么要有继承呢,现实中也是有继承的,对吧,你继承你爸的遗产,比如你爸建好了一个房子,儿子继承爸,就得了一个房子,当然你还可以再建一个房子(新增方法),当然如果你爸允许你拆他房子(加open),你也可以拆掉他的,重建(重写方法)。

继承抽象类和接口同一用 “:”

一、类继承:
//父类,
//有open修饰:允许其他类继承
/*** 注意: 默认无open修饰:不允许其他类继承*/open class Parent {//父类中的一个方法//有open修饰:允许子类重写//无open修饰:不允许子类重写open fun action(){println("Parent action----------")}
}
//Child类继承自Parent类
class Child : Parent() {//子类重写了父类的action方法override fun action(){println("Child action----------")}
}fun main() {}
二、抽象类定义:
/*** 抽象类:定义在class前加abstract* 类是个模型了吧,就比如动物,有些是飞的,有些是走路的,有些是潜水的。* 就是把如何行走这个行为的再抽象出来,让它生成对象时自己决定(自己实现)** 注意:抽象类没法自己生成对象,它需要有子类* // 看了这个抽象类,我们来看下它的子类InheritDemo** BaseActivity*/
abstract class AbstractDemo(val  name:String,var age:Int) {var sex:Int = 1fun eat(){println("我要吃东西")}//定义一个走抽象方法abstract fun walk()
}
三、接口的定义:
/*** 定义一个接口:关键字interface 不用加class** 注意:往往有些人分不清抽象类和接口的使用场景,感觉接口能做的,抽象类也能做,*       为什么还要接口呢。*  接口更像方法的抽象,它不归属于具体的类。它可以给没有任何联系的类*  如在Android开发中的OnClickListener接口,它可以给TextView,也可以给ImageView**  选学:因为有了高阶函数,高阶很大程度可以代替接口*/
interface InterfaceDemo {//没有实现的方法fun action()//实现了方法fun action2(){println("我是action2。")}
}
四、继承抽象类和接口:
/*** 继承了抽象类AbstractDemo和接口InterfaceDemo* 注意:子类的构造函数就不能加var或者val了,你父加了*/
class InheritDemo( name1:String, age:Int) : AbstractDemo(name1, age),InterfaceDemo {//实现了抽象类中的抽象方法override fun walk() {println("我来自抽象类中的抽象方法")}//实现了接口中的方法override fun action() {println("我来自接口中的action方法")}//重写了接口中的方法override fun action2() {super.action2()println("我来自接口中的实现的方法")}
}

有兴趣的也可以看视频教程:

【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口

整个kotlin教程源码项目结构图:

在这里插入图片描述
有问题或者需要整个源码学习的私信我

相关文章:

【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口

【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口 为什么要有继承呢,现实中也是有继承的,对吧,你继承你爸的遗产,比如你爸建好了一个房子,儿子继承爸,就得了…...

虚拟现实和增强现实技术,如何打造沉浸式体验?

内容概要 在这个科技飞速发展的时代,虚拟现实(VR)与增强现实(AR)技术的结合就像调皮的小精灵,一下子把我们的生活变得神奇又有趣。想象一下,你正在游戏中与精灵搏斗,突然间身边的客…...

ChatGPT任务设计和微调策略的优化

目录 ChatGPT任务设计和微调策略的优化 一、GPT-3的基础 二、任务设计和微调策略的优化 三、基于人类反馈的强化学习(RLHF) 举例 完全注意力机制的自回归解码器网络 一、定义与原理 二、举例说明 ChatGPT任务设计和微调策略的优化 ChatGPT确实是从GPT-3开始,通过任…...

通过 SSH 连接远程 Ubuntu 服务器

目录 安装 SSH 服务器允许 SSH 通过防火墙远程 SSH 连接(选)重启向日葵 安装 SSH 服务器 更新软件包列表 sudo apt update安装 OpenSSH 服务器 sudo apt install openssh-server检查 SSH 服务器状态 sudo systemctl status ssh如果 SSH 服务器正在运…...

Perl 环境安装

Perl 环境安装 Perl 是一种广泛使用的高级、通用、解释型、动态编程语言。它最初由 Larry Wall 在 1987 年设计,现在由 Perl 5 和 Perl 6 两个主要版本组成。Perl 适合于多种编程任务,包括系统管理、Web 开发、网络编程、游戏开发等。在开始使用 Perl 进行编程之前,您需要在…...

【NOIP提高组】引水入城

【NOIP提高组】引水入城 💐The Begin💐点点关注,收藏不迷路💐 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政 区划十分特殊,刚好构成一个N行M列的矩形&#xff…...

openvino python推理demo

openvino python推理demo import openvino from openvino.runtime import Core import numpy as np import argparse import hashlib import os import ioclass OpenvinoInfer:def __init__(self,device_id0):self.device_iddevice_idself.ie Core()self.available_devices …...

JavaWeb项目-----博客系统

一.设计数据库 1.创建数据库 create database if not exists java108_blog_system character set utf8; drop table if exists user; drop table if exists blog;2.创建博客列表 create table blog(blogId int primary key auto_increment,title varchar(20),content varcha…...

GY-56 (VL53L0X) 激光测距

文章目录 一、GY-56 简介二、引脚功能三、通信协议1.串口协议: 当 GY-56 PS 焊点开放时候使用(默认)(1)串口通信参数(默认波特率值 9600bps)(2)模块输出格式,每帧包含 8-13 个字节&a…...

当今陪玩系统小程序趋势,陪玩系统源码搭建后的适用于哪些平台

一、市场规模持续扩大 随着全球游戏市场的不断膨胀,游戏陪玩行业正逐渐从一个新兴领域成长为游戏产业链中不可或缺的一环。据《2024年1~6月中国游戏产业报告》显示,今年上半年,国内游戏市场实际销售收入达到1472.67亿元,同比增长…...

qt QListWidget详解

1、概述 QListWidget 是 Qt 框架中的一个类,它提供了一个基于模型的视图,用于显示项目的列表。QListWidget 继承自 QAbstractItemView 并为项目列表提供了一个直观的接口。与 QTreeView 和 QTableView 不同,QListWidget 是专门为单行或多行项…...

java ssm 校园快递物流平台 校园快递管理系统 物流管理 源码 jsp

一、项目简介 本项目是一套基于SSM的校园快递物流平台,主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具等。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后端技术&#x…...

西安电子科技大学考研网报审核通过了,然后呢?

报考西安电子科技大学的宝贝们,考研网上确认已经截止的同学们,不用担心! 最近,有很多同学问到一个问题:网上确认时看到有消息说禁止使用海马体照片,但我明明用了海马体的照片,审核却通过了&…...

pandas习题 051:将字符串数据读取到 DataFrame

编码题)有以下逗号隔开和空格隔开的字符串数据,如何将它读取为 DataFrame ? data = ‘’’ a,b,c 1,3,4 2,4,5 ‘’’ data2 = ‘’’ a b c 1 13 214 2 4 15 ‘’’ Python 代码如下:import pandas as pd import iodata = a,b,c 1,3,4 2,4,5 df = pd.read_csv(io.Stri…...

改进探路者算法复现

本文所涉及所有资源均在 传知代码平台 可获取。 目录 一、背景及意义介绍 (一)背景 ࿰...

PostgreSQL 学习笔记:PostgreSQL 主从复制

PostgreSQL 笔记:PostgreSQL 主从复制 博客地址:TMDOG 的博客 在现代应用程序中,数据库的高可用性和扩展性是至关重要的。PostgreSQL 提供了主从复制功能,可以在多个数据库实例之间复制数据,以实现冗余和负载均衡。本…...

【系统架构设计师(第2版)】十一、未来信息综合技术

未来信息综合技术是指近年来新技术发展而提出的一些新概念、新知识、新产品,主要包括信息物理系统(CPS)、人工智能(AI)、机器人、边缘计算、数字孪生、云计算和大数据等技术。这些技术涉及多学科、多领域,具…...

Pytorch学习--神经网络--优化器

一、头文件 torch.optim.Optimizer(params, defaults) optim文档 for input, target in dataset:optimizer.zero_grad()output model(input)loss loss_fn(output, target)loss.backward()optimizer.step()二、代码 不带优化器的代码框架 import torch import torchvision…...

w~自动驾驶合集11

我自己的原文哦~ https://blog.51cto.com/whaosoft/12329152 #特斯拉的“纯视觉”路线 , 也许不是最好的 BEVTransformer占用网络技术路线的大热,再次将激光雷达推向风口浪尖。 激光雷达该不该被抛弃? 对车企来说,这是一个艰难的抉择&am…...

大数据新视界 -- 大数据大厂之 Impala 性能优化:解锁大数据分析的速度密码(上)(1/30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

ip子接口配置及删除

配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

es6+和css3新增的特性有哪些

一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...