diff --git a/w5/ShapeAreaCalculator.java b/w4/ShapeAreaCalculator.java similarity index 100% rename from w5/ShapeAreaCalculator.java rename to w4/ShapeAreaCalculator.java diff --git a/w5/屏幕截图 2026-03-29 185330.png b/w4/屏幕截图 2026-03-29 185330.png similarity index 100% rename from w5/屏幕截图 2026-03-29 185330.png rename to w4/屏幕截图 2026-03-29 185330.png diff --git a/w5/类图 b/w4/类图 similarity index 100% rename from w5/类图 rename to w4/类图 diff --git a/w5/DuoTai.java b/w5/DuoTai.java new file mode 100644 index 0000000..e69de29 diff --git a/w6/AnimalTest.java b/w6/AnimalTest.java new file mode 100644 index 0000000..8ab4b78 --- /dev/null +++ b/w6/AnimalTest.java @@ -0,0 +1,56 @@ +package main.w6; + +// 1. 抽象动物类 +abstract class Animal { + // 抽象方法:动物叫声 + public abstract void makeSound(); +} + +// 2. 游泳接口 +interface Swimmable { + void swim(); +} + +// 3. Dog类:继承Animal,实现Swimmable接口 +class Dog extends Animal implements Swimmable { + @Override + public void makeSound() { + System.out.println("小狗汪汪叫~"); + } + + @Override + public void swim() { + System.out.println("小狗会狗刨游泳"); + } +} + +// 4. Cat类:仅继承Animal,不实现Swimmable +class Cat extends Animal { + @Override + public void makeSound() { + System.out.println("小猫喵喵叫~"); + } +} + +// 测试类 +public class AnimalTest { + public static void main(String[] args) { + // 多态调用:父类引用指向子类对象 + Animal dog = new Dog(); + Animal cat = new Cat(); + + // 调用叫声方法 + System.out.println("=== 动物叫声 ==="); + dog.makeSound(); + cat.makeSound(); + + // 只有实现了Swimmable的对象才能调用swim() + System.out.println("\n=== 游泳能力 ==="); + if (dog instanceof Swimmable) { + ((Swimmable) dog).swim(); + } + + // cat没有实现Swimmable,不能调用swim() + System.out.println("小猫不会游泳"); + } +} \ No newline at end of file