java继承-cnblog

news2024/11/26 22:33:46

类的继承

在这里插入图片描述

继承本身

一个类要继承另一个类需要使用关键字extends

关键字extends的使用

class a extend b{}

由于java只支持单继承,所以同时继承多个父类是错误的

在创造子类对象时,会先执行父类的构造方法,再执行子类的构造方法

举例说明

package nb;

class a{
    public a(){
        System.out.printf("这是父类方法");
    }
}

class b extends a{
    public b(){
        System.out.printf("这是子类方法");
    }
}
public class ex {
    public static void main(String[] args) {
        new b();
    }
}

image-20241010201100527

object类

object是所有类的父类,在object类中,主要包括clone(),finalize(),equals(),toString()

最常用的两个方法是equals(),toString()

getClass方法

getClass()是object类定义的方法,他会返回对象执行时的Class实例,使用此实例调用getMame()方法可以取得类的名称

toString方法

toString方法功能是将一个对象返回成字符串的形式,他会返回一个String实例.当类转换为字符串与字符串连接时会自动调用重写的toString方法

equals()方法

在java中有两种比较相等的方式,分别是==和equals()方法

两者具有区别==比较的是两者的内存,equals比较的是两个对象的具体内容

对象类型的转换

举一个例子

package nb;

class People{}
class Teacher extends People{}
public class tom {
    public static void main(String[] args) {
        People tom = new Teacher();
      这里有一个人 名字叫tom	他是一名老师
        Teacher teacher = (Teacher) tom;
      这个人(tom) 是一个老师
    }
}

如果Teacher teacher = tom;这句话输入的话计算机会报错

因为老师是人,人不一定是老师

People tom = new Teacher();可以由老师向上转型,但是不能向下转型

instanceof关键字

判断一个类是否实现了接口,判断一个实例对象是否属于一个类

写一个小案例

package nb;

class Aa {}
class Bb extends Aa{}
class Cc{}
public class instance_ {
    public static void main(String[] args) {
        Aa aa = new Aa();
        Bb bb = new Bb();
        System.out.println(aa instanceof Bb);
        System.out.println(bb instanceof Aa);
    }
}

image-20241010203413471

b继承a,a 不属于 b,所以返回false

b属于a,返回true 如果遇到别的教程值相反属于书籍谬误,需要编写程序验证

方法的重载

构造方法只有一个名字,希望以不同的方式实例化对象,需要使用多个构造方法来完成

这些构造方法根据类名命名,方法名相同形参不同的方法叫做重载

final

final变量

final double PI =3.14

使用final设置变量后变量不可变,

final方法

将方法定义为final类型,可以防止子类修改父类的定义和实现方式

final的方法执行效率高于非final方法

final类

定义为final的类不能被继承,该类中所有的方法都被隐式的设置成final方法,但是final类中的成员变量可以被定位成

final和非final形式

record类

record是final声明的简化

public final class a == public record class

该类中所有的方法都被隐式的设置成final方法,但是final类中的成员变量可以被定位成

final和非final形式

record类

record是final声明的简化

public final class a == public record class

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

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

相关文章

Linux 云服务器部署kafka(单机版)

进入对应安装目录 cd /usr/local/ 下载对应的安装包 wget https://downloads.apache.org/kafka/3.8.0/kafka_2.13-3.8.0.tgz 解压缩 tar zxf kafka_2.13-3.8.0 进入安装目录 cd /usr/local/kafka_2.13-3.8.0/ 修改配置文件 vim ./config/server.properties 主要修改…

Flexbox弹性盒子详解

弹性盒子模型详解 Flex弹性盒子模型详解Flex布局的基本概念Flex布局的常见属性及用法1. 主轴方向2. 主轴换行方式3. flex-flow(分开写更好)4. 主轴对齐方式5. 侧轴对齐方式5.1 一行的情况5.2 多行的情况 6. 伸缩性6.1 flex-basis6.2 flex-grow&#xff0…

常州威雅学校:课外拓展活动 用热爱营造无限可能

作为全人教育理念的躬行实践,常州威雅中小学部的课外拓展活动(E&X)也伴随着初秋温和的风紧锣密鼓地铺展开来。 常州威雅为中小学部的学生们提供了几十项的课外拓展活动,从入门到进阶,展现了艺术、音乐、体育、科技…

YOLO11模型训练 | 目标检测与跟踪 | 实例分割 | 关键点姿态估计

前言 本文分享YOLO11的模型推理,检测任务包括物体分类、目标检测与跟踪、实例分割 、关键点姿态估计、旋转目标检测等。 安装方式支持:默认的使用pip进行安装;也支持直接调用YOLO11源码,灵活便捷修改源码。 本文支持自定义数据…

2024红队必备工具列表总结_railgun工具

一、信息收集 1、AppInfoScanner 一款适用于以HVV行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具,可以帮助渗透测试工程师、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如&#xff…

OKG Research:如何衡量链上数据的开放价值?

在新加坡Token2049期间,欧科云链研究院受邀参加Bloomberg主办的企业另类资产投资峰会2024,与多位专家围绕未来数据形态与前景进行了深入交流。 活动后,欧科云链研究院负责人Lola Wang与资深研究员Jason Jiang在大公网发表署名文章《如何衡量…

Dinky 字段模式演变 PIPELINE 同步MySQL到Doris

背景 用Dinky数据平台 FlinkCDC收集Mysql BinLog 至 Doris 搭建实时数仓 问题 用Dinky CDCSOURCE 字段模式演变 整库同步Mysql到Doris 字段新增删除不生效 组件信息 Flink 1.17 dinky 1.1 Doris 2.1.6 Mysql 8.0Dinky MySQLCDC 整库到 Doris需要的依赖 Flink/lib 和 dinky/…

家庭酒吧一体化解决方案Bar Assistant

什么是 Bar Assistant ? Bar Assistant 是一个用于管理家庭酒吧的自托管应用程序。它允许您添加配料、搜索鸡尾酒和创建自定义鸡尾酒配方。是您所有最爱鸡尾酒配方和饮品的新家。 软件功能: 包含超过 300 个鸡尾酒配方,附带详细信息包含超过…

iPhone 16 Pro 拆解揭秘:设计改进与维修便利性

苹果最新推出的iPhone 16系列在许多方面都进行了更新和改进,而这次我们要聚焦的是其中的高端型号——iPhone 16 Pro。 这款手机不仅在性能上有所提升,在内部构造上也带来了不少变化,让我们一起来看看这些细节吧。 更容易进入的内部结构 对于…

【hadoop报错】JAR does not exist or is not a normal file

1. 环境 linux Ubuntu hadoop 执行 hadoop jar 命令时,一直报错 解决方法 2、确定自己的jar目录是切实存在的 /export/server/hadoop-3.3.6/shares/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.3.6-tests.jar 3、网上找了很多解决办法,最后…

QUUID 使用详解

UUID 通常由 128 位(16 字节)组成,通常表示为 32 个十六进制数字,分为五个部分,格式如下: QUuid 是 Qt 框架中用于生成和处理 UUID(通用唯一标识符)的类。UUID 是一种标准的标识符格…

厦门网站制作的趋势与最佳实践

厦门网站制作的趋势与最佳实践 随着数字化时代的到来,厦门的网站制作行业也在不断演变,呈现出多样化的趋势与最佳实践。这些变革不仅满足了市场的需求,也为企业的数字化转型提供了强有力的支持。 首先,响应式设计已成为网站制作的…

自由学习记录(5)

git命令行init仓库 mkdir的命令行使用 -p 是 mkdir 命令中的一个选项,表示 "parent",意思是创建所有必要的父目录。如果使用 -p,即使父目录不存在,命令也会自动创建它们,而不会报错。 在 Git 中&#xff0…

Android复杂问题分析工具bugreportz详解

文章目录 bugreportz详细介绍功能与作用使用方法生成详细报告检查进度bugreportz 的优势分析报告 如何分析1. 解压 ZIP 文件2. 分析主要文件2.1 bugreport.txt2.2 logcat.txt2.3 kernel.log / last_kmsg2.4 events.log2.5 traces.txt2.6 dumpstate_board.txt 3. 工具支持4. 重点…

计算机的错误计算(一百一十九)

摘要 用错数解释计算机的错误计算(一百一十八)中的错误计算。 计算机的错误计算(一百一十八)给出一个循环迭代 用C语言或Java编程计算,则 均是错误结果。 下面用错数解释其出错原因。 首先,将迭代看作 …

ARM base instruction -- umull

无符号乘法运算 Unsigned Multiply Long multiplies two 32-bit register values, and writes the result to the 64-bit destination register. 将两个32位寄存器值相乘&#xff0c;并将结果写入64位目标寄存器。 64-bit variant UMULL <Xd>, <Wn>, <Wm&g…

springmvc直接访问 上下文路径 302 后路径更改并跳转源码解析

【问题现状】 application.yml 配置如下属性&#xff1a; server:servlet:context-path: /learning直接访问&#xff1a;http://localhost:8888/learning 路径时&#xff0c;会返回302的响应状态&#xff1b;并跳转路径&#xff1a;http://localhost:8888/learning/ (原路径后…

MapReduce工作机制源码解析

目录 1. MapTask工作机制2. ReduceTask工作机制3. ReduceTask并行度决定机制4. MapTask & ReduceTask源码解析 1. MapTask工作机制 MapTask一共分为五个阶段&#xff1a;Read、Map、Collect、溢写、Merge阶段。 在第4步MrAppMaster启动之前都是job的提交流程&#xff0c;…

keras yolo8目标检测

是从coco数据集提取其中的veh_ids[3,6,8,10] labels[car,bus,truck,traffic light]来做目标检测,分别表示汽车,公交车&#xff0c;卡车&#xff0c;交通灯,用的backbone keras_cv.models.YOLOV8Backbone.from_preset( "yolo_v8_m_backbone_coco" ),不用预训练…

构造mex(牛客周赛 Round 59)

题目链接&#xff1b; D-构造mex_牛客周赛 Round 59 (nowcoder.com) 题目描述&#xff1a; 输出和输出描述&#xff1a; 输入样例&#xff1a; 3 6 3 3 7 4 3 6 6 0 输出样例&#xff1a; NO YES 4 0 1 2 YES 1 1 1 1 1 1 分析&#xff1a; 数学思维题&#xff0c;赛后看了一…