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