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

JavaSE-07

目录

一.继承

二.继承的格式&使用

三.继承中使用封装(Private)

四.继承的注意事项

五.继承中成员变量的访问特点

六.继承中成员方法的访问特点

七.方法重写(Override)

八.抽象类

九.抽象方法

十.示例


一.继承

定义:Java 里的继承,就是让一个类(子类)直接 “抄” 另一个类(父类)的代码,不用重复写,父类有的属性和非私有方法,子类默认都能用,子类还能加自己的新东西,或者改一改父类的旧方法(重写)。

二.继承的格式&使用

代码说明:

name是父类的非私有成员属性可以直接赋值。

eat是父类的非私有成员方法可以直接调用。

三.继承中使用封装(Private)

代码说明:

name是父类的私有成员属性需要子类继承父类的set方法可以间接赋值。

eat是父类的非私有成员方法可以直接调用。

四.继承的注意事项

在Java中,类只支持单继承,不允许多继承

java中一个父类可以有多个子类

java可以有多层次(间接)继承

java规定最顶层的父类是Object类(这个类是java定义好的,也叫超类)

五.继承中成员变量的访问特点

1.子父类无同名变量

说明:变量访问特点会遵循就近原则,因为父类与子类没有相同变量名,num1直接访问父类,num2直接访问子类。

2.子父类同名变量访问(super关键字)

说明:变量访问特点会遵循就近原则,因为父类与子类有相同变量名,所以想访问父类的变量需要添加super关键字。

3.子夫类成员变量及局部变量均相同

说明:变量访问特点会遵循就近原则,因为父类与子类与方法中的临时变量都是相同变量名,所以想访问父类的变量需要添加super关键字,访问子类的变量需要添加this关键字。

六.继承中成员方法的访问特点

1.子父类成员方法不同

说明:遵循就近原则:在访问成员方法的时候,如果本类有该成员方法,直接使用,如果没有,会继续查找父类逐级查找,只要在其中一级找到就拿过来使用,如果所有层级都没有那么就报错。

2.子父类成员方法相同

说明:遵循就近原则:在访问成员方法的时候,如果本类有该成员方法,直接使用,如果没有,会继续查找父类逐级查找,只要在其中一级找到就拿过来使用,如果所有层级都没有那么就报错,如果成员方法名相同,需要用super关键字调用。

七.方法重写(Override)

重写的由来:当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样即沿袭了父类的功能,又定义了子类特有的内容。

方法重写必要条件:

  • 重写必须要有继承关系,重写针对的是子类的方法重写父类的方法
  • 子类的方法与被重写的父类的方法要保持一致(方法的返回值类型,方法名,形参列表保持一致)
  • 子类的方法的权限 >= 父类被重写的方法的权限

强制重写

说明:实现接口方法、重写父类方法,不加能编译,但极易埋坑,所以行业里统一约定:只要是重写,一律加 @Override。

八.抽象类

说明:抽象类就是用来当 “父类模板” 的,只定规范、存通用代码,自己不能造对象,逼着子类把没做完的功能补全。

核心特点:

1.不能new实例化抽象类不能直接 new 抽象类(),只能被子类继承。

2.可以有抽象方法 + 普通方法

例如:抽象方法:abstract 修饰,没有方法体,只有声明 普通方法:有方法体,直接写实现。

3.包含抽象方法的类,必须是抽象类,反过来:抽象类可以没有抽象方法,也能是抽象类。

4.子类继承抽象类,必须重写所有抽象方法不重写就报错;要么子类也改成 abstract 抽象类。

5.有构造方法抽象类可以有构造器,供子类 super () 调用,初始化父类成员

格式:abstract class 类名 { }

九.抽象方法

1.抽象方法:被 abstract 修饰,只有方法声明,没有方法体 的方法。

语法特征:没有 {},直接分号结尾

public abstract void eat();

2.核心特点

  • 没有方法体只定义方法名、参数、返回值,不写具体业务逻辑。
  • 必须放在抽象类 / 接口里普通类不能定义抽象方法。
  • 不能被 private、static、final、native 修饰
  • 子类继承后必须强制重写除非子类也定义成 abstract 抽象类

3.抽象方法的作用

  • 定标准、定规范规定子类必须拥有这个功能,但不规定怎么实现。
  • 强制子类覆写,避免漏写功能。
  • 支撑多态父类抽象方法 → 子类各自实现 → 父类引用指向子类,自动调用子类重写逻辑。

十.示例

http://www.jsqmd.com/news/755686/

相关文章:

  • 实战应用:基于快马平台开发可数据交互的产区标准图分析系统
  • 2026年实测全网最全10款主流降AI率工具合集:高效搞定论文AI检测! - 降AI实验室
  • 文澜知微项目实训小组报告记录(三)
  • 【干货】IDA Pro 动态调试与静态分析常用快捷键
  • Nat Commun|吴华君/徐明团队开发跨尺度三维基因组预测深度学习框架Hi-Compass
  • 别再死磕复杂模型了!用TuckER张量分解搞定知识图谱补全,附PyTorch代码实战
  • 【2026年唯一认证级OPC UA C#开发手册】:覆盖IEC 62541-4/5/8/13全标准,附12个工厂产线实测案例源码
  • 基于Next.js 15与Prisma的AI智能体管理系统:规范驱动开发实践
  • 测试系统开发全流程:硬件架构与软件设计实战
  • 深入探讨:解决Azure AD B2C用户管理中的NullReferenceException
  • AI机器人产业全景与发展态势
  • NVIDIA Nemotron Nano V2 VL模型:边缘计算中的视觉语言模型实践
  • Power Apps上传文件到SharePoint时,Base64转换和JSON解析的坑我都帮你踩过了
  • 5个步骤轻松实现Unity游戏自动翻译:XUnity.AutoTranslator完全指南
  • 别再只会用梯度下降了!用Scipy的basinhopping搞定Python里的那些‘坑’函数
  • 车载C#中控与ADAS域控制器通信卡顿?(揭秘DDS over .NET 6 + ROS2 Bridge的混合通信架构,已通过AEC-Q100 Grade 2验证)
  • 别再只会JSON.stringify了!JS对象Key重命名的7种实战方案(含性能对比)
  • 向量模型分词与截断机制详解:从文本到向量的完整旅程
  • LoRA-Torch:权重合并范式实现通用高效的大模型微调
  • 为什么说Godot-MCP正在彻底改变游戏开发的工作方式?
  • STM32F103C8T6小车蓝牙遥控避坑指南:HC-05模块AT指令配置与串口中断实战
  • 深度解析YoRadio:ESP32音频流媒体系统的架构设计与实现机制
  • 自优化视频采样技术提升物理真实感
  • 别再只调SystemInit了!STM32从Stop模式唤醒后时钟配置全解析(HSE恢复72MHz)
  • 推理服务为什么一开超时熔断就开始误杀长输出:从 Token Budget 到 Partial Result Commit 的工程实战
  • 从‘错题本’到OHEM:聊聊目标检测中困难样本挖掘的演进与最佳实践
  • 远程固件级调试不再难,.NET 9边缘调试全链路打通,从ARM Cortex-M到Linux容器一文吃透
  • Shimmy:一键部署本地OpenAI兼容服务器,无缝接入GGUF模型
  • 3步掌握B站视频下载:downkyi高效下载工具全攻略
  • 深入浅出 MCP (Model Context Protocol): 开启 AI Agent 的标准化连接时代