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("猫不会游泳"); } } } } }