diff --git a/w6/AnimalSystem.java b/w6/AnimalSystem.java new file mode 100644 index 0000000..dbc005c --- /dev/null +++ b/w6/AnimalSystem.java @@ -0,0 +1,41 @@ +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("小猫不会游泳"); + } + } +} \ No newline at end of file