From d73df0a19f9f342698014ffa2dd3cca5341b6d1b Mon Sep 17 00:00:00 2001 From: Zhuhuairui <3180158655@qq.com> Date: Thu, 16 Apr 2026 11:30:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'w7'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w7/Main.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 w7/Main.java diff --git a/w7/Main.java b/w7/Main.java new file mode 100644 index 0000000..b40e638 --- /dev/null +++ b/w7/Main.java @@ -0,0 +1,59 @@ +// 1. 抽象类 Animal(顶级类,不嵌套在Main里) +abstract class Animal { + public abstract void makeSound(); +} + +// 2. 接口 Swimmable(顶级类) +interface Swimmable { + void swim(); +} + +// 3. Dog 类(顶级类,继承Animal + 实现Swimmable) +class Dog extends Animal implements Swimmable { + @Override + public void makeSound() { + System.out.println("狗叫:汪汪汪!"); + } + + @Override + public void swim() { + System.out.println("狗会游泳:狗刨式前进!"); + } +} + +// 4. Cat 类(顶级类,仅继承Animal) +class Cat extends Animal { + @Override + public void makeSound() { + System.out.println("猫叫:喵喵喵!"); + } +} + +// 5. 主类 Main(唯一public类,包含标准main方法) +public class Main { + // ✅ 正确的main方法:public static + String[]参数 + public static void main(String[] args) { + // 测试多态调用 + System.out.println("=== 多态测试:动物叫声 ==="); + Animal dog = new Dog(); + Animal cat = new Cat(); + dog.makeSound(); + cat.makeSound(); + + System.out.println("\n=== 接口测试:游泳能力 ==="); + Swimmable swimmer = new Dog(); + swimmer.swim(); + + System.out.println("\n=== 综合遍历测试 ==="); + Animal[] animals = {new Dog(), new Cat()}; + for (Animal animal : animals) { + animal.makeSound(); + // 判断是否实现了Swimmable接口 + if (animal instanceof Swimmable) { + ((Swimmable) animal).swim(); + } else { + System.out.println("该动物不会游泳"); + } + } + } +} \ No newline at end of file