package java01; 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 AnimalSystem { public static void main(String[] args) { Animal animal1 = new Dog(); Animal animal2 = new Cat(); animal1.makeSound(); animal2.makeSound(); System.out.println("----------"); if (animal1 instanceof Swimmable) { Swimmable swimmer = (Swimmable) animal1; swimmer.swim(); } if (animal2 instanceof Swimmable) { Swimmable swimmer = (Swimmable) animal2; swimmer.swim(); } else { System.out.println("猫不会游泳"); } } }