1 changed files with 0 additions and 33 deletions
@ -1,33 +0,0 @@ |
|||||
实验报告 |
|
||||
1. 实验目的 |
|
||||
通过抽象类和继承重构图形面积计算器,实现代码的复用、扩展和统一管理。 |
|
||||
2. 实验步骤 |
|
||||
设计抽象类Shape,定义抽象方法getArea() |
|
||||
编写Circle/Rectangle/Triangle继承Shape,实现各自的面积计算 |
|
||||
编写工具类ShapeUtil,提供统一的printArea方法 |
|
||||
绘制 UML 类图 |
|
||||
分析组合与继承的区别,完成实验反思 |
|
||||
3.AI使用情况 |
|
||||
AI帮助完成并修改代码 |
|
||||
`public` 类只能有一个:一个文件里只能有一个 `public` 类,其他类必须是默认访问权限(不加修饰符) |
|
||||
将文件命名为Shape而无法运行,询问AI并指出应修改为Main,与类名保持一致 |
|
||||
询问AI进一步了解组合,继承,多态 |
|
||||
4.组合vs继承 |
|
||||
此次代码使用的是继承,这是典型的 is-a 关系:圆形 是一个 图形、矩形 是一个 图形。 |
|
||||
继承适合层级明确、逻辑统一的场景,能很好体现多态(AI总结为多态是面向对象的三大特性之一,指父类引用可以指向子类对象,在调用同名方法时,会根据实际对象类型执行对应子类的实现,呈现出不同行为) |
|
||||
|
|
||||
继承:是一种(is‑a)继承:学生 是一个 人 → Student extends Person |
|
||||
组合:有一个(has‑a)组合:电脑 有一个 屏幕 → Computer { private Screen screen; } |
|
||||
继承实现方式:子类继承抽象父类,重写抽象方法 |
|
||||
组合实现:把其他类对象作为成员变量 |
|
||||
|
|
||||
继承的特点有: |
|
||||
结构清晰,符合现实逻辑(图形→具体图形) |
|
||||
利用多态:Shape shape = new Circle(…) |
|
||||
代码复用:统一接口 getArea() |
|
||||
扩展方便:新增图形只需新增子类,不改动原有代码 |
|
||||
|
|
||||
组合的特点有: |
|
||||
耦合度低,更灵活 |
|
||||
不受 Java 单继承限制 |
|
||||
方便复用多个类的功能 |
|
||||
Loading…
Reference in new issue