1. 继承(is-a 关系) - 优点:代码复用、多态统一处理(如  Shape  统一调用  getArea() ),符合“是一种”语义(圆是一种图形)。 - 缺点:耦合度高,子类必须实现父类所有抽象方法;Java 单继承限制,无法复用多个类的功能;修改父类会影响所有子类; 继承关系在编译时确定,运行时无法改变。 2. 组合(has-a 关系) - 优点:低耦合、高复用,可灵活组合多个功能;不破坏封装,可动态替换组件;一个类包含另一个类的对象作为成员。 - 缺点:需要手动委托方法,代码量稍多,没有继承的多态便捷性;无法自动继承功能。 3.本项目使用继承的原因: 均是继承关系 圆 是一种 图形 Circle extends Shape 矩形 是一种 图形 Rectangle extends Shape 三角形 是一种 图形 Triangle extends Shape 需要多态: ShapeUtil.printArea(Shape shape) 需要统一处理 用 Shape 类型可以接受任何图形 代码复用: 所有图形都有 name 属性 继承避免重复代码 反思: 1. 对Java语法与命名规范的理解不足 最初修改类名、文件名后代码无法运行,暴露了我对“ public 类必须与文件名完全一致”“构造方法参数不能带标签名”等基础规则掌握不牢。今后要先夯实语法基础,再进行代码重构,避免因细节疏忽导致编译错误。 2. 面向对象设计思维仍需强化 一开始依赖AI给出抽象类框架,自己对“为何用抽象类实现多态”的理解不够深入。通过本次实验才真正体会到:抽象类 Shape 的价值在于统一接口,让 ShapeUtil 能无差别处理所有图形,这是多态思想的核心体现。 3. 工具依赖与自主思考的平衡待优化 实验中多次依赖AI排查错误、生成代码,虽然提升了效率,但也削弱了自主分析问题的能力。今后要先尝试独立解决问题,再借助AI验证思路,避免过度依赖工具导致编程能力退化。