news 2026/5/25 13:08:16

Java 第三章第四章 案例教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 第三章第四章 案例教程

Java 第三章&第四章 案例教程

说明:本教程承接前两章,深入讲解面向对象核心特性与常用类。第三章聚焦继承、多态、抽象类、接口;第四章讲解异常处理、常用类(String、StringBuilder、ArrayList、Math、日期时间)。通过“图形绘制系统”和“学生信息管理系统”实战串联知识点。


第一部分:第三章 继承、多态、抽象类与接口

一、背景故事:小杨需要设计可复用的图形类

小杨的学生成绩管理系统已经稳定运行。现在他需要设计一个图形绘制程序,支持圆形、矩形、三角形等形状,每种形状都能计算面积和周长。他发现不同形状有共性(如颜色、位置),又有差异(面积计算公式不同)。他想用继承复用代码,用多态统一处理,用抽象类定义规范。

二、继承(Inheritance)

继承是面向对象的三大特性之一,允许子类复用父类的属性和方法。

2.1 基本语法

// 父类(基类)publicclassAnimal{protectedStringname;// protected 子类可访问publicAnimal(Stringname){this.name=name;}publicvoideat(){System.out.println(name+"正在吃东西");}}// 子类(派生类)publicclassDogextendsAnimal{publicDog(Stringname){super(name);// 调用父类构造方法,必须第一行}// 子类可以添加新方法publicvoidbark(){System.out.println(name+"汪汪叫");}}// 使用Dogdog=newDog("旺财");dog.eat();// 继承的方法dog.bark();// 自己的方法

2.2 方法重写(Override)

子类可以重写父类的方法,实现自己的逻辑。

publicclassCatextendsAnimal{publicCat(Stringname){super(name);}@Override// 注解,编译器检查,推荐加publicvoideat(){System.out.println(name+"优雅地吃鱼");}}

· 重写规则:方法名、参数列表必须相同;返回值类型可以是原类型的子类;访问权限不能更严格。
· @Override 帮助检查是否成功重写。

2.3 super 关键字

· super() 调用父类构造方法(必须第一行)。
· super.方法名() 调用父类被重写的方法。

三、多态(Polymorphism)

多态允许使用父类类型的变量引用子类对象,调用方法时执行子类的重写版本。

Animala1=newDog("小黑");Animala2=newCat("小白");a1.eat();// 输出: 小黑正在吃东西(Dog未重写eat)a2.eat();// 输出: 小白优雅地吃鱼(Cat重写了eat)

多态的条件:

  1. 有继承关系。
  2. 子类重写父类方法。
  3. 父类引用指向子类对象。

多态的优势:提高代码扩展性,可编写统一的处理逻辑。

publicvoidletEat(Animala){a.eat();// 无论传Dog还是Cat,都会调用实际类型的方法}

四、抽象类(Abstract Class)

抽象类不能实例化,用于定义模板,包含抽象方法(无实现,子类必须实现)。

publicabstractclassShape{protectedStringcolor;publicShape(Stringcolor){this.color=color;}// 抽象方法:没有方法体publicabstractdoublegetArea();publicabstractdoublegetPerimeter();// 普通方法publicvoiddisplayColor(){System.out.println("颜色: "+color);}}publicclassCircleextendsShape{privatedoubleradius;publicCircle(Stringcolor,doubleradius){super(color);this.radius=radius;}@OverridepublicdoublegetArea(){returnMath.PI*radius*radius;}@OverridepublicdoublegetPerimeter(){return2*Math.PI*radius;}}

五、接口(Interface)

接口是一种完全抽象的规范,定义了一组方法,不提供实现(Java 8后可写默认方法、静态方法)。类可以实现多个接口。

publicinterfaceDrawable{voiddraw();// 默认 public abstract}publicinterfaceMoveable{voidmove(intdx,intdy);}// 实现多个接口publicclassRectangleextendsShapeimplementsDrawable,Moveable{privatedoublewidth,height;publicRectangle
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 13:04:01

百叶窗结构设计优化,减少噪声

🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 211、985硕士,从业16年 从事结构设计、热设计、售前、产品设计、项目管理等工作,涉足消费电子、新能源、医疗设备、制药信息化、核工业等…

作者头像 李华
网站建设 2026/5/25 13:03:23

024、NPU指令集架构(ISA)概述:从CISC到VLIW

024、NPU指令集架构(ISA)概述:从CISC到VLIW 去年冬天调试一块国产NPU芯片的卷积算子,跑ResNet-50前向推理,死活比理论算力低了一个数量级。抓了三天波形,最后发现是指令发射槽的冲突——两条MAC指令争同一个数据总线,硬件自动插入三个空泡周期。那一刻我盯着逻辑分析仪…

作者头像 李华
网站建设 2026/5/25 13:03:01

单向晶闸管开关电路基础知识及Multisim电路仿真

目录 2.1.3 单向晶闸管开关电路 2.1.3.1 单向晶闸管开关电路基础知识 一、电路结构与核心元件 二、工作原理详解 三、核心特性与关键要点 四、常见应用场景 五、关断方式说明 2.1.3.2 单向晶闸管开关电路Multisim电路仿真 一、初始状态:晶闸管关断(第 1 个电路) 二…

作者头像 李华
网站建设 2026/5/25 13:02:21

AMD Zen4平台+双RTX 4090装机:为什么我放弃了四根DDR5内存条?

AMD Zen4平台双RTX 4090装机:为什么我放弃了四根DDR5内存条? 当实验室需要一台能够处理复杂计算任务的服务器时,大多数人会本能地选择"堆料"——更多的核心、更大的显存、更高的内存容量。但在实际组装这台AMD Zen4平台搭配双RTX 4…

作者头像 李华