diff --git a/W6/AnimalTest.java b/W6/AnimalTest.java new file mode 100644 index 0000000..5dc40c6 --- /dev/null +++ b/W6/AnimalTest.java @@ -0,0 +1,26 @@ +public class AnimalTest { + public static void main(String[] args) { + // 创建动物数组,演示多态 + Animal[] animals = new Animal[2]; + animals[0] = new Dog(); + animals[1] = new Cat(); + + // 测试多态调用makeSound方法 + System.out.println("测试动物叫声:"); + for (Animal animal : animals) { + animal.makeSound(); + } + + // 测试Dog的swim方法 + System.out.println("\n测试游泳能力:"); + if (animals[0] instanceof Swimmable) { + ((Swimmable) animals[0]).swim(); + } + + if (animals[1] instanceof Swimmable) { + ((Swimmable) animals[1]).swim(); + } else { + System.out.println("猫不会游泳!"); + } + } +} \ No newline at end of file diff --git a/W6/Cat.java b/W6/Cat.java new file mode 100644 index 0000000..12ee151 --- /dev/null +++ b/W6/Cat.java @@ -0,0 +1,6 @@ +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..5a536c5 --- /dev/null +++ b/W6/Dog.java @@ -0,0 +1,11 @@ +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/Swimmable.java b/W6/Swimmable.java new file mode 100644 index 0000000..b7a501e --- /dev/null +++ b/W6/Swimmable.java @@ -0,0 +1,3 @@ +public interface Swimmable { + void swim(); +} \ No newline at end of file