Java中的继承

article/2025/6/12 9:20:32

1.继承的语法

2.如何访问父类的成员变量和方法

3.super的使用

4.继承中的构造函数

5.父类和子类代码块调用顺序

6.protected的使用

7.final的使用


1.继承的语法

在日常生活的,我们一听到继承,就会想到继承家里的财产,所以继承的本质就是可以直接拿到家里的财产,在Java中,继承是对多个对象共同特点进行抽取,让我们的代码复用性提高,比如在我们家庭中,儿子,女儿共有名字,年龄,身高,体重...,我们可以将他们这些共有的部分抽取到家庭当中,保留他们独特的特点,比如在特定的时段,儿子在踢足球,女儿在打篮球,这些就是他们特有的,下面的代码就是使用继承,减少代码的冗余,提高代码的复用性

在代码中,我们把继承于xxx这个类称为父类(也可以叫做基类或者超类)

而继承父类的这个类叫做子类(或者派生类)

所以有子类继承父类,派生类继承基类

我们将家庭中的成员共有的部分抽取出来,使得每个家庭成员保留他们特有的方法和变量

比如Son喜欢做运动,Sister喜欢写作业,这是他们的特点

在继承的时候我们需要使用关键字extends,本意是扩展的意思,所以使用extends可以继承父类的成员变量和成员方法

2.如何访问父类的成员变量和方法

那么如何调用父类的成员变量和成员方法呢,其实本质就是实例化对象,就可以通过'.',调用父类的成员变量和成员方法,当我们子类继承父类,可以对子类进行实例化对象,通过对象就可以访问到父类的成员方法和成员变量

调用父类的方法

调用父类的成员变量

3.super的使用

当父类和子类有相同的成员变量或者成员方法的时候,我们无论如何实例化对象进行调用,都是优先调用子类的,其实在调用的时候,编译器会遵从一个原则:对实例化的对象进行调用某一个成员方法或者成员变量的时候,优先在子类查找,如果子类查找不到,就去父类查找,如果父类也查找不到,那么就报错!!!

那么当子类和父类有相同的成员变量的时候,我们就想调用父类的成员变量该咋办呢?

我们可以使用super调用,super就是调用父类的成员变量或者成员方法

当父类和子类有相同的成员变量id时候,我们对子类实例化对象调用的id,都是子类自己的id

当我们想要调用父类id时候,就可以使用super.id,就可以访问父类的id,但是有一点需要注意的是,super只能在非静态方法中调用

super和this的比较

【相同点】

1.super和this都是Java中的关键字

2.都必须在非静态方法中使用

3.在构造方法中必须放在第一条语句

【不同点】

1.super和this不可以同时存在 --- 因为super必须放在构造方法第一句,this也必须放在构造方法第一句

2.super()是调用父类的构造方法,this()是调用当前类的构造方法

3.super引用的成员变量或者成员方法是引用父类的成员变量或者成员方法

而this应用的成员变量或者成员方法是引用当前类的成员变量或者成员方法

4.在调用无参的构造方法时,如果没有写super(),编译器也会自动为我们生成,而编译器不会自动帮我们生成this()

4.继承中的构造函数

当我们使用继承后,如果不写任何构造函数,在编译的时候,编译器会自动帮我们生成一个无参的构造函数,但是当我们需要一个带参的构造函数,就需要有几点要注意:

1.在子类写构造函数的时候,第一行必须先帮父类进行构造,需要使用super

2.如果我们自己写一个无参的构造函数,第一行如果不写super的话,编译器会默认帮我们写,但是如果是带参的构造函数,第一行不写super的话,编译器不会帮我们写的!!

5.父类和子类代码块调用顺序

我们先讨论没有继承的时候,对于一个类来讲,我们有静态代码块,实例代码块,构造方法,当我们对一个类实例化对象的时候,他会先调用静态代码块,其次调用实例代码块,最后调用构造方法,当我们对一个类进行多次实例化的时候,静态代码块只会被第一次实例化调用一次,所以后面只会调用实例代码块的构造方法

而对于继承来说,就会略有不同,我们可以看下面的代码:

对于继承,当我们对子类实例化对象的时候,他会优先调用父类的静态代码块,再调用子类的静态代码块,然后调用父类的实例代码块和构造方法,再调用子类的实例代码块和构造方法

6.protected的使用

protected的使用范围:再同一包中的同一类或者不同类,和不同包的子类可以访问

这是俩个不同包的子类,Student继承了School类,School中的成员变量用protected修饰,但是因为Student继承了School类,所以可以访问School中的成员变量

但是要注意的是:如果有多个类继承了School,那么每个类不可以再其他类下面实例化对象并且调用父类的成员变量和成员方法,只能再自己类下实例化对象,然后进行调用

7.final的使用

final可以修饰变量,成员方法和类

final修饰变量或者子段,表示该变量被修饰为常量(不可以被修改)

final修饰类,表示该类不可以被继承

1.修饰变量 --- 表示该变量被修饰为常量,无法被修改

2.修饰类 --- 表示该类无法被继承


http://www.hkcw.cn/article/fgJYrQBxtl.shtml

相关文章

2022年 能源统计年鉴Excel电子版

2022年 能源统计年鉴Excel电子版.ziphttps://download.csdn.net/download/2401_84585615/89772876 https://download.csdn.net/download/2401_84585615/89772876 《中国能源统计年鉴2022》是由国家统计局能源统计司主编的权威性资料书,全面反映了中国能源建设、生产…

牛客小白月赛117

依旧掉分场, 疯狂wa, 感觉越打越菜了.... A. 好字符串 题目描述 给你一个长度为 n 的字符串 s,如果一个小写字母为好字符,当且仅当该小写字母对应的大写字母和它同时在字符串 s 中出现 或者 同时不在字符串 s 中出现;而如果一个字符串为好…

【数据分析】基于Cox模型的R语言实现生存分析与生物标志物风险评估

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理生存分析画图输出图片其他标记物的分析总结系统信息介绍 分析生存数据与多种生物标志物之间的关系。它通过Cox比例风险模型来评估不同生物标志物…

“长大设计歼-90” 小孩哥、小孩姐,尽管大胆畅想

“这里面能装核弹吗?”“叔叔,这炮真能打一万发吗?你们数过吗?”“我长大以后,要设计太空战机歼-90!”小朋友们你们尽情畅想未来国防力量的新篇章将由你们去开创大朋友们且接稚子剑,斩尽暮气来孩子们的奇思妙想还需要你们守护今天,“六一”国际儿童节祝所有大朋友、小朋…

商家炮轰美团神券活动 强制补贴引发争议

一位名为“天才外卖运营课堂”的博主在抖音上表达了对美团618活动的不满,称其为“拿商家的钱,办美团的事”。该活动规定,18元的优惠券中,商家需承担12元,平台补贴6元。面对京东外卖的竞争压力,美团推出了这项举措,但结果却引发了商家和消费者的广泛争议。市场人士指出,…

把足球搞上去 江苏是认真的 “苏超”燃动全省

虎扑App紧急新增“江苏联”频道。在“苏超”第三轮于5月31日开打之前,一票难求和诸梗风行的情势深度交织,让越来越多的网友沉醉其间。玩梗层出不穷:“我从来不关心足球,这次特别关注”“我都不是球迷,我就是为了争口气”“没有假球,全是世仇”“比赛第一,友谊第十四”。…

美洛杉矶港负责人:目前进口量在缓慢回升

美洛杉矶港负责人:目前进口量在缓慢回升 但没达到原有水平美国有线电视新闻网5月30日报道称,尽管美国港口管理方期盼关税出现利好消息,但由于美国政府在关税政策层面的剧烈摇摆,即使有利好消息传出,商品也难以立即恢复流入美国港口。目前,美国港口进口量仍未恢复至原有水…

AE已禁用刷新请释放Caps Lock

用AE 是不是遇到过这样的提示, 不用担心。 只需要关闭大写按键即可 关闭 这个CAPS LOCK 按键即可

俄一桥梁被炸坍塌 已致数十人伤亡 爆炸装置所致

5月31日,俄罗斯布良斯克州一座桥梁发生坍塌,导致一辆从莫斯科开往该州城市克利莫沃的列车脱轨。据初步统计,事故共造成31人伤亡,其中3人不幸遇难,28人被送往医疗机构救治。媒体报道称,不明身份者在桥梁上放置了4个爆炸装置并在列车经过时引爆。桥梁被自制爆炸装置破坏,导…

66条预警齐发!浙江将迎大风暴雨 警惕次生灾害

今天雨水继续,截至6:45分,浙江共有66条气象预警,其中暴雨预警43条,大家出门一定要提高警惕。昨天下午自浙西北地区先起雨,雨量最大时段为5月31日后半夜至6月2日上午,浙中北有大雨暴雨,杭嘉湖大部、宁绍北部、衢州西北部局部有大暴雨。强对流以短时暴雨为主,最大小时雨强…

球迷冲突!巴黎球迷朝警方投掷燃烧瓶,警方发射催泪弹驱散人群

直播吧6月1日讯 在巴黎圣日耳曼夺得欧冠冠军后,法国城市博韦(Beauvais)发生巴黎圣日耳曼球迷和警察的冲突。在欧冠决赛中,巴黎圣日耳曼5-0大胜国米,成功夺冠。巴黎圣日耳曼的球迷们在法国各地庆祝,但在博韦却发生了球迷骚乱。当时一群球迷先是欢呼夺冠,然后开始侮辱马赛…

香港演员方刚去世巨额遗产继承成谜 干儿子或将继承

5月30日,网络上爆出原香港TVB著名反派演员方刚因病去世,享年78岁。令人意外的是,这一消息并非由他的直系亲属公布,而是由他多年前在四川收养的六个干儿子之一,来自四川雅安芦山县的王翰祥发布的。方刚终身未娶,没有亲生子女,但他并不孤单。他有一个堪比亲生儿子的干儿子…

樊振东加盟德甲联赛 莫雷加德欢迎 新挑战开启

6月1日,萨尔布吕肯俱乐部宣布樊振东加盟德甲联赛。樊振东表示他非常期待在萨尔布吕肯和德甲的新挑战,希望能体验新的环境,并与球队一起赢得更多胜利。球队经理对这一消息感到惊讶,但确认这是现实,樊振东将为球队效力。这不仅是俱乐部的一个重要体育里程碑,也是德国和欧洲…

融智学内涵、数学定义和跨学科应用的四个核心公式

融智学内涵、数学定义和跨学科应用的四个核心公式 四个核心公式的可视化解析,结合融智学内涵、数学定义和跨学科应用的三维呈现: 图 码graph TB subgraph 公式全息解析 direction TB %% 道函数公式 subgraph F1["f_Tao(Ob,Mor,Γ)0"] dire…

reverse_ssh 建立反向 SSH 连接指南 混淆AV [好东西哟]

目录 🌐 工具简介 ⚙️ 前提条件 攻击主机 (Linux) 目标主机 (Windows) 📋 详细步骤 步骤 1:安装 Go 环境 步骤 2:安装必要依赖 步骤 3:下载并编译 reverse_ssh 步骤 4:配置密钥 步骤 5&#xff…

wavelib库 图像处理

1. Wavelib图像处理核心功能 Wavelib虽主要针对1D信号,但可通过分通道处理实现图像操作: 多级小波分解(DWT):提取低频(近似)和高频(细节)成分 图像去噪:阈值…

江科大IIC读取MPU6050hal库实现

hal库相关函数 初始化结构体 typedef struct {uint32_t ClockSpeed; /*通讯速度*/uint32_t DutyCycle; /*快速模式下的占空比*/uint32_t OwnAddress1; /*设备地址1*/uint32_t AddressingMode; /*设备地址模式*/uint32_t DualAddressMode; /*双地址模式…

CTFHub-RCE 命令注入-过滤运算符

观察源代码 代码里面可以发现过滤了运算符,我们可以尝试分号; 判断是Windows还是Linux 源代码中有 ping -c 4 说明是Linux 查看有哪些文件 127.0.0.1;ls 打开flag文件 cat这个php文件 127.0.0.1;cat flag_257413168915334.php 可是发现 文本内容显示…

基带传输实验-码型变换

基带传输实验 码型变换 因图片过多且显示失败,故提供源文件共大家按需自行下载:我用夸克网盘分享了「实验报告1.docx」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。 链接:https://pan.quark.c…

中交四航局三公司被罚没7769万元 违规售石料受重罚

5月31日,中交四航局第三工程有限公司因在广连高速TJ02标从化段施工过程中与他人合谋私自出售合法施工产生的石料,被广州市规划和自然资源局处以两项行政处罚,合计罚没金额达77697872元。两项处罚决定日期均为2025年5月23日。根据行政处罚决定书文号穗规划资源从资罚﹝2025﹞…