diff --git a/w6/AnimalTest.java b/w6/AnimalTest.java new file mode 100644 index 0000000..92ec223 --- /dev/null +++ b/w6/AnimalTest.java @@ -0,0 +1,55 @@ +// 抽象类:动物 +abstract class Animal { + // 抽象方法:动物叫声 + public abstract void makeSound(); +} + +// 接口:具备游泳能力 +interface Swimmable { + void swim(); +} + +// 狗类:继承动物,实现游泳接口 +class Dog extends Animal implements Swimmable { + @Override + public void makeSound() { + System.out.println("Dog: 汪汪汪"); + } + + @Override + public void swim() { + System.out.println("Dog 正在游泳"); + } +} + +// 猫类:仅继承动物 +class Cat extends Animal { + @Override + public void makeSound() { + System.out.println("Cat: 喵喵喵"); + } +} + +// 测试类 +public class AnimalTest { + public static void main(String[] args) { + // 多态:父类引用指向子类对象 + Animal dog = new Dog(); + Animal cat = new Cat(); + // 测试叫声 + dog.makeSound(); + cat.makeSound(); + + // 测试游泳(仅狗实现了接口) + if (dog instanceof Swimmable) { + ((Swimmable) dog).swim(); + } else { + System.out.println("该动物不会游泳"); + } + if (cat instanceof Swimmable) { + ((Swimmable) cat).swim(); + } else { + System.out.println("Cat 不会游泳"); + } + } +} \ No newline at end of file diff --git a/w6/屏幕截图 2026-04-20 114504.png b/w6/屏幕截图 2026-04-20 114504.png new file mode 100644 index 0000000..8e166b5 Binary files /dev/null and b/w6/屏幕截图 2026-04-20 114504.png differ