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

java复习笔记(2)




一、抽象类与抽象方法

抽象类用 abstract 关键字修饰,它不能被直接实例化(不能用 new 创建对象),核心作用是作为父类,让子类继承。抽象类里可以包含普通方法,也可以包含抽象方法——也就是只有方法声明、没有方法体的方法,比如定义一个 getArea() 方法,只声明返回值和方法名,不写具体实现。

抽象方法必须被非抽象的子类重写,子类继承抽象父类后,必须实现所有抽象方法,否则子类也得定义为抽象类。这就是“父类定规范,子类来实现”的典型体现,比如几何图形父类定义 getArea() 抽象方法,矩形、圆形子类分别实现自己的面积计算逻辑。

二、多态与数组应用

多态的核心体现是“父类引用指向子类对象”,比如 Geometry[] tuxing = new Geometry[9]; 这个数组,虽然类型是抽象父类 Geometry ,但数组里的每个元素都可以存储它的子类对象(比如 new Rect(16, 68) 、 new Circle(7) )。

我们可以通过父类数组统一管理不同子类对象,再通过循环调用重写后的 getArea() 方法,就能计算所有图形的面积总和。这种方式把不同子类的公共行为统一起来,不用为每个子类单独写一套计算逻辑,大幅提升了代码的复用性和扩展性。

三、接口与接口实现

接口用 interface 关键字定义,它是一种特殊的抽象类型,里面的方法默认是 public abstract 的(可以省略不写),变量默认是 public static final 的。接口的核心特点是:

  • 一个类可以实现多个接口,弥补了 Java 单继承的局限;
  • 实现类必须重写接口中所有的抽象方法,否则会编译报错。

比如定义 ComputerAverage 接口,声明 average() 方法,再让 SongGame 类和 School 类分别实现这个接口,用不同的逻辑计算平均值: SongGame 先排序去掉最高分最低分再求平均, School 直接对所有成绩求平均。通过接口多态,我们可以用 ComputerAverage 类型的引用,调用不同实现类的 average() 方法,得到不同的结果。

四、super 关键字与方法重写

super 关键字用来引用父类的内容,常见用法有三种:

  1. super.xxx :调用父类的成员变量;
  2. super.方法名() :调用父类的成员方法;
  3. super() :调用父类的构造方法,必须写在子类构造方法的第一行。

在方法重写中,子类可以通过 super 调用父类的方法,再在此基础上扩展逻辑。比如银行利息计算的例子,父类 Bank 定义了 computerInterest() 方法计算整年利息,子类 ConstructionBank 重写这个方法时,先通过 super.computerInterest() 获取整年利息,再额外计算零头天数的利息,最后把两部分加起来,既复用了父类的逻辑,又实现了子类的扩展需求。

五、继承与代码复用

继承是面向对象的核心特性之一,用 extends 关键字实现,子类可以继承父类的非私有成员变量和成员方法,避免重复代码。比如 ConstructionBank 和 BankOfDalian 都继承自 Bank 类,直接复用父类的 savedMoney 、 interestRate 变量和 setInterestRate() 方法,只需要重写自己的利息计算逻辑即可。

同时,Java 只支持单继承,一个类只能有一个直接父类,但可以通过实现多个接口来扩展功能,这也是接口的重要作用之一。

http://www.zskr.cn/news/1408915.html

相关文章:

  • 实战指南:基于ELK构建企业级业务日志实时监控与可视化分析系统
  • 青海旅游领队推荐:走西北长线,为什么领队、车辆和服务细节很重要 - 行业深度观察
  • ChatGPT播客选题失效真相:97.3%创作者忽略的“认知坡度差”指标,3步校准听众注意力阈值
  • 量子退火中的Minor Embedding技术与强化学习优化
  • 2026年5月行业聚焦:深度解析当前值得关注的家居建材付费代运营服务商 - 2026年企业资讯
  • 40.全网最细三平台刷机底层拆解!高通 9008/MTK BROM / 苹果 DFU 全协议解析
  • 避开这3个坑,让你的2D-DIC(数字图像相关)测量结果更准确:从ADIC2D实战出发
  • 机器学习在糖尿病风险预测中的应用:代谢综合征与不平衡数据处理
  • 图神经网络在接触力学中的高效应用与优化
  • 基于监督学习的工业物联网无线干扰识别:从原理到嵌入式实现
  • 2026年 集成房屋/临时用房/移动房厂家推荐榜:装配式房屋/打包箱房屋/快拼箱房屋/工地临建房/模块化房屋源头厂家综合实力深度解析与选购指南 - 品牌企业推荐师(官方)
  • tesla P100显卡使用体验AI部署小结
  • 有哪些AI写作辅助平台是真的贴合学术规范,而不是模板套话?
  • 从零到一:MobileNet V1/V2 核心架构解析与轻量级模型实战搭建
  • 智谱GLM-5:实用主义AGI的技术革命
  • UDS 正式发布:从“手动维护 200 个配置文件“到“一条命令生成全集群 PXE 配置
  • 我用了几个月向量引擎 API 中转站后,整理出这份普通人也能看懂的实测笔记
  • 企业级网络管理革命:5分钟容器化部署NetBox IPAM+DCIM系统
  • OpenTenBase的外键(Foreign Key)和外键级联
  • 68_《智能体微服务架构企业级实战教程》运维与部署之编写docker-compose部署脚本
  • 用Python+粒子群算法搞定多仓库物流配送路径规划(附完整代码)
  • 基于YOLOv7与几何算法的腹腔镜器械无标记3D姿态实时估计
  • ArcGIS坡度计算实战:从坐标系选择到Z因子校准的完整避坑指南
  • 无刷直流电机与永磁同步电机控制策略(一)——从方波到正弦波:驱动模式如何塑造电机性能与应用边界
  • 车载以太网之要火系列 - 第53篇:郭大侠学DDS(数据帧):数据入帧君需知,序列化后力道施
  • 别再只用Postman测接口了!用支付宝沙箱模拟真实支付流程,测试你的应用更靠谱
  • 告别手写定位符!用 Appium Inspector 的录制和搜索功能快速生成 Python/Java 测试脚本
  • 被低估的超级不锈钢:为什么高端装备都在悄悄使用UNS S21800? - 品牌2025
  • Go语言timer源码:时间调度实现深度解析
  • 航空发动机叶盘系统的多场耦合振动特性及优化设计【附程序】