# AI协助记录 一、开发过程中遇到的问题 1. 多态调用接口方法的问题 问题:使用`Animal`父类引用指向`Dog`对象时,无法直接调用`swim()`方法,编译报错。 解决:通过`instanceof`关键字判断对象是否实现了`Swimmable`接口,再进行强制类型转换后调用。 2. 抽象类与接口的使用混淆 问题:不清楚何时用抽象类、何时用接口,导致初始设计逻辑混乱。 解决:明确抽象类用于**继承通用属性/行为**(动物的叫声是所有动物的通用行为),接口用于**扩展额外能力**(游泳是部分动物的能力),因此`Animal`用抽象类,`Swimmable`用接口。 3. 方法重写的规范问题 问题:子类重写抽象方法时,忘记加`@Override`注解,代码可读性差。 解决:在所有重写方法上添加`@Override`注解,规范代码,同时让编译器检查重写是否正确。 二、优化调整 1. 增加`instanceof`判断,避免类型转换异常 2. 为所有类和方法添加JavaDoc注释,提升代码可读性 3. 补充多场景测试(父类引用+直接对象调用),完整验证多态特性