diff --git a/java b/java new file mode 100644 index 0000000..53b4594 --- /dev/null +++ b/java @@ -0,0 +1,48 @@ +Animal.java: +public abstract class Animal { + public abstract void makeSound(); +} +Dog.java: +public class Dog extends Animal implements Swimmable { + @Override + public void makeSound() { + System.out.println("汪汪汪!"); + } + + @Override + public void swim() { + System.out.println("狗在游泳!"); + } +} +Cat.java: +public class Cat extends Animal { + @Override + public void makeSound() { + System.out.println("喵喵喵!"); + } +} +Main.java: +public class Main { + public static void main(String[] args) { + // 多态调用 + Animal dog = new Dog(); + Animal cat = new Cat(); + + System.out.println("狗的叫声:"); + dog.makeSound(); + + System.out.println("猫的叫声:"); + cat.makeSound(); + + // 测试游泳功能 + if (dog instanceof Swimmable) { + ((Swimmable) dog).swim(); + } + + if (cat instanceof Swimmable) { + ((Swimmable) cat).swim(); + } else { + System.out.println("猫不会游泳!"); + } + } +} \ No newline at end of file