commit 66621d6ca81173ccd837e7f5cf37ce46c2156307 Author: SALAH ABDULLAH阿山 <2040abdullah@gmail.com> Date: Fri May 8 16:20:24 2026 +0800 完成 animal 的作业 diff --git a/src/main/java/org/example/Main.java b/src/main/java/org/example/Main.java new file mode 100644 index 0000000..ed63b7e --- /dev/null +++ b/src/main/java/org/example/Main.java @@ -0,0 +1,49 @@ +// 游泳接口 +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(); + } + } +} += \ No newline at end of file