diff --git a/w6/AnimalSystem.java b/w6/AnimalSystem.java new file mode 100644 index 0000000..28feaa6 --- /dev/null +++ b/w6/AnimalSystem.java @@ -0,0 +1,46 @@ +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("猫不会游泳"); + } + } +} \ No newline at end of file diff --git a/w6/运行截图.png b/w6/运行截图.png new file mode 100644 index 0000000..c058c1a Binary files /dev/null and b/w6/运行截图.png differ