// 游泳接口 interface Swimmable { void swim(); } // 抽象动物类 abstract class Animal { public abstract void makeSound(); } // 狗:继承Animal + 实现游泳接口 class Dog extends Animal implements Swimmable { @Override public void makeSound() { System.out.println("小狗汪汪汪叫"); } @Override public void swim() { System.out.println("小狗会游泳,正在游泳"); } } // 猫:只继承Animal,不实现游泳接口 class Cat extends Animal { @Override public void makeSound() { System.out.println("小猫喵喵喵叫"); } } // 主类名改成Main!和文件名Main.java完全一致 public class Main { public static void main(String[] args) { // 多态测试:父类引用指向子类对象 Animal animal1 = new Dog(); Animal animal2 = new Cat(); // 多态调用叫声 animal1.makeSound(); animal2.makeSound(); // 向下转型调用游泳方法 if (animal1 instanceof Dog dog) { dog.swim(); } } } =