当前位置: 首页 > 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.jsqmd.com/news/900100/

相关文章:

  • Cadence Virtuoso IC617:从零开始的工程创建与库管理实战
  • 实战指南:基于ELK构建企业级业务日志实时监控与可视化分析系统
  • 论文降AI还在手动试错?2026实测10款热门工具(附优缺点全盘点)
  • 青海旅游领队推荐:走西北长线,为什么领队、车辆和服务细节很重要 - 行业深度观察
  • 拒绝热胀冷缩!高精度仪器制造首选的4J36合金品牌推荐 - 品牌2025
  • 如何快速搭建英雄联盟客户端工具箱:LeagueAkari完整配置指南
  • 企业级网络管理革命:5分钟容器化部署NetBox IPAM+DCIM系统
  • 2026年5月行业聚焦:深度解析当前值得关注的家居建材付费代运营服务商 - 2026年企业资讯
  • C语言的运算非常灵活,功能十分丰富,运算种类远多于其它
  • 青甘大环线包车推荐:小团、包车和路线怎么选,路由心这套玩法适合谁 - 行业深度观察
  • 实战指南:在Kali Linux 2024.1中部署OWASP WebGoat 8.3.0
  • 全文重构还是局部微调?2026国内外10款降AI工具实测指南(含免费工具)
  • 分布式缓存策略:提升应用性能和扩展性
  • 从零搭建 RAG 系统:用 LangChain + ChromaDB 给自己做一个私有知识库
  • tesla P100显卡使用体验AI部署小结
  • 2026年 集成房屋/临时用房/移动房厂家推荐榜:装配式房屋/打包箱房屋/快拼箱房屋/工地临建房/模块化房屋源头厂家综合实力深度解析与选购指南 - 品牌企业推荐师(官方)
  • 使用curl命令快速测试taotoken大模型api连通性与返回格式
  • CCS链接警告剖析:SECTIONS缺失导致输出段‘XXXXXXX’未定义的修复策略
  • 有哪些AI写作辅助平台是真的贴合学术规范,而不是模板套话?
  • 13 - 异常处理
  • 从零到一:MobileNet V1/V2 核心架构解析与轻量级模型实战搭建
  • 告别自签名警告:为Proxmox VE管理界面配置域名与SSL证书
  • LoongSon——PMON实战命令手册:从启动到调试
  • 2026年Q2云南厨电工厂深度解析:家园优品如何引领区域产业升级? - 2026年企业资讯
  • 3分钟学会Windows 11终极优化:Win11Debloat免费系统清理完整指南
  • 告别手写定位符!用 Appium Inspector 的录制和搜索功能快速生成 Python/Java 测试脚本
  • 68_《智能体微服务架构企业级实战教程》运维与部署之编写docker-compose部署脚本
  • LeagueAkari:英雄联盟玩家的智能效率革命,告别传统低效操作
  • 2026年Q2苏州的经济合同纠纷法律服务深度解析与选择指南 - 2026年企业资讯
  • 从Linux到SPDK:NVMe Namespace的创建、绑定与高性能存储实践