diff --git a/W6/AnimalTest.java b/W6/AnimalTest.java new file mode 100644 index 0000000..ab4707e --- /dev/null +++ b/W6/AnimalTest.java @@ -0,0 +1,45 @@ +abstract class Animal{ + public abstract void makeSound(); +} +interface Swimmable { + void swim (); +} +class Dog extends Animal implements Swimmable { + @Override + public void makeSound() { + System.out.println("汪汪汪!"); + } + @Override + public void swim() { + System.out.println("狗刨式游泳"); + } +} +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(); + + System.out.println("\n=== 游泳测试 ==="); + if (dog instanceof Swimmable) { + Swimmable s = (Swimmable) dog; + s.swim(); + } + if (cat instanceof Swimmable) { + Swimmable s = (Swimmable) cat; + s.swim(); + } else { + System.out.println("猫不会游泳"); + } + + } +} diff --git a/W6/运行截图.png b/W6/运行截图.png new file mode 100644 index 0000000..440ff47 Binary files /dev/null and b/W6/运行截图.png differ