diff --git a/w6/Animal.java b/w6/Animal.java new file mode 100644 index 0000000..5e7073b --- /dev/null +++ b/w6/Animal.java @@ -0,0 +1,42 @@ +package w6; + +public abstract class Animal{ + public abstract void makeSound(); + public interface Swimmable{ + void swim(); + public class Dog extends Animal implements Swimmable{ + @Override + public void makeSound(){ + System.out.println("汪汪汪!"); + } + @Override + public void swim(){ + System.out.println("狗会游泳"); + } + } + public 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("===游泳能力测试==="); + if (dog instanceof Swimmable) { + ((Swimmable) dog).swim(); + } + if (cat instanceof Swimmable) { + ((Swimmable) cat).swim(); + } else { + System.out.println("猫不会游泳"); + } + } + } + } +} \ No newline at end of file