From 3934af47bac5139f7db467231140df827d9d7087 Mon Sep 17 00:00:00 2001 From: Wangyifei <935057973@qq.com> Date: Mon, 13 Apr 2026 22:36:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=8A=BD=E8=B1=A1=E7=B1=BB?= =?UTF-8?q?=E5=92=8C=E6=8E=A5=E5=8F=A3=E6=94=B9=E8=BF=9B=E5=8A=A8=E7=89=A9?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w6/Animal.java | 9 +++++++++ w6/AnimalTest.java | 31 +++++++++++++++++++++++++++++++ w6/Cat.java | 9 +++++++++ w6/Dog.java | 14 ++++++++++++++ w6/README.md | 27 +++++++++++++++++++++++++++ w6/Swimmable.java | 9 +++++++++ w6/ai协助记录.txt | 16 ++++++++++++++++ w6/运行输出.jpg | Bin 0 -> 73564 bytes 8 files changed, 115 insertions(+) create mode 100644 w6/Animal.java create mode 100644 w6/AnimalTest.java create mode 100644 w6/Cat.java create mode 100644 w6/Dog.java create mode 100644 w6/README.md create mode 100644 w6/Swimmable.java create mode 100644 w6/ai协助记录.txt create mode 100644 w6/运行输出.jpg diff --git a/w6/Animal.java b/w6/Animal.java new file mode 100644 index 0000000..24c530c --- /dev/null +++ b/w6/Animal.java @@ -0,0 +1,9 @@ +/** + * 动物抽象父类,定义所有动物的通用行为 + */ +public abstract class Animal { + /** + * 抽象方法:动物发出叫声,由子类具体实现 + */ + public abstract void makeSound(); +} \ No newline at end of file diff --git a/w6/AnimalTest.java b/w6/AnimalTest.java new file mode 100644 index 0000000..be96c20 --- /dev/null +++ b/w6/AnimalTest.java @@ -0,0 +1,31 @@ +/** + * 主测试类,验证多态调用 + */ + public class AnimalTest { + public static void main(String[] args) { + // 1. 多态:父类引用指向子类对象 + Animal dog = new Dog(); + Animal cat = new Cat(); + // 2. 调用makeSound方法,体现多态 + System.out.println("=== 动物叫声测试 ==="); + dog.makeSound(); + cat.makeSound(); + // 3. 测试游泳接口:Dog实现了Swimmable,Cat未实现 + System.out.println("\n=== 游泳能力测试 ==="); + if (dog instanceof Swimmable) { + ((Swimmable) dog).swim(); + } else { + System.out.println("这只动物不会游泳"); + } + if (cat instanceof Swimmable) { + ((Swimmable) cat).swim(); + } else { + System.out.println("猫不会游泳"); + } + // 4. 直接创建Dog对象测试 + System.out.println("\n=== 直接调用Dog方法 ==="); + Dog myDog = new Dog(); + myDog.makeSound(); + myDog.swim(); + } + } \ No newline at end of file diff --git a/w6/Cat.java b/w6/Cat.java new file mode 100644 index 0000000..762fda5 --- /dev/null +++ b/w6/Cat.java @@ -0,0 +1,9 @@ +/** + * 猫类,仅继承动物抽象类,不实现游泳接口 + */ +public class Cat extends Animal { + @Override + public void makeSound() { + System.out.println("猫叫:喵喵喵!"); + } +} \ No newline at end of file diff --git a/w6/Dog.java b/w6/Dog.java new file mode 100644 index 0000000..d3d94fb --- /dev/null +++ b/w6/Dog.java @@ -0,0 +1,14 @@ +/** + * 狗类,继承动物抽象类,实现游泳接口 + */ +public class Dog extends Animal implements Swimmable { + @Override + public void makeSound() { + System.out.println("狗叫:汪汪汪!"); + } + + @Override + public void swim() { + System.out.println("狗在游泳:狗刨式前进!"); + } +} \ No newline at end of file diff --git a/w6/README.md b/w6/README.md new file mode 100644 index 0000000..9492be3 --- /dev/null +++ b/w6/README.md @@ -0,0 +1,27 @@ +#动物叫声系统 + +1.功能说明 + +基于Java抽象类和接口实现动物叫声系统,Dog和Cat继承Animal类实现叫声,Dog额外实现Swimmable接口实现游泳能力,在main方法中完成多态调用测试。 + + + +2.编译运行命令 +javac AnimalTest.java +java AnimalTest + + +3.项目结构 + +src/ + +├── Animal.java # 动物抽象类 + +├── Swimmable.java # 游泳接口 + +├── Dog.java # 狗类(继承Animal+实现Swimmable) + +├── Cat.java # 猫类(仅继承Animal) + +└── AnimalTest.java # 主测试类 + diff --git a/w6/Swimmable.java b/w6/Swimmable.java new file mode 100644 index 0000000..3d5856b --- /dev/null +++ b/w6/Swimmable.java @@ -0,0 +1,9 @@ +/** + * 游泳能力接口,定义会游泳的动物的行为 + */ +public interface Swimmable { + /** + * 游泳方法 + */ + void swim(); +} \ No newline at end of file diff --git a/w6/ai协助记录.txt b/w6/ai协助记录.txt new file mode 100644 index 0000000..8308195 --- /dev/null +++ b/w6/ai协助记录.txt @@ -0,0 +1,16 @@ +# AI协助记录 + 一、开发过程中遇到的问题 +1. 多态调用接口方法的问题 + 问题:使用`Animal`父类引用指向`Dog`对象时,无法直接调用`swim()`方法,编译报错。 + 解决:通过`instanceof`关键字判断对象是否实现了`Swimmable`接口,再进行强制类型转换后调用。 +2. 抽象类与接口的使用混淆 + 问题:不清楚何时用抽象类、何时用接口,导致初始设计逻辑混乱。 + 解决:明确抽象类用于**继承通用属性/行为**(动物的叫声是所有动物的通用行为),接口用于**扩展额外能力**(游泳是部分动物的能力),因此`Animal`用抽象类,`Swimmable`用接口。 +3. 方法重写的规范问题 + 问题:子类重写抽象方法时,忘记加`@Override`注解,代码可读性差。 + 解决:在所有重写方法上添加`@Override`注解,规范代码,同时让编译器检查重写是否正确。 + +二、优化调整 +1. 增加`instanceof`判断,避免类型转换异常 +2. 为所有类和方法添加JavaDoc注释,提升代码可读性 +3. 补充多场景测试(父类引用+直接对象调用),完整验证多态特性 \ No newline at end of file diff --git a/w6/运行输出.jpg b/w6/运行输出.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb124050d07f0aa535097e21c892f4067cf3eb3e GIT binary patch literal 73564 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