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("游泳"); if (dog instanceof Swimmable) { ((Swimmable) dog).swim(); } else { System.out.println("不会游泳"); } if (cat instanceof Swimmable) { ((Swimmable) cat).swim(); } else { System.out.println("不会游泳"); } } }