commit 6214943cbcdfcaf86cdbf385771f8259d3ff430c Author: Thea Wang Date: Mon Apr 13 17:39:04 2026 +0800 更新 diff --git a/Animal.class b/Animal.class new file mode 100644 index 0000000..b05489d Binary files /dev/null and b/Animal.class differ diff --git a/Animal.java b/Animal.java new file mode 100644 index 0000000..b07d6fa --- /dev/null +++ b/Animal.java @@ -0,0 +1,3 @@ +public abstract class Animal { + public abstract void makeSound(); +} \ No newline at end of file diff --git a/Cat.class b/Cat.class new file mode 100644 index 0000000..6035d14 Binary files /dev/null and b/Cat.class differ diff --git a/Cat.java b/Cat.java new file mode 100644 index 0000000..5a0c4b4 --- /dev/null +++ b/Cat.java @@ -0,0 +1,6 @@ +public class Cat extends Animal { + @Override + public void makeSound() { + System.out.println("Meow!"); + } +} \ No newline at end of file diff --git a/Dog.class b/Dog.class new file mode 100644 index 0000000..9fe7a79 Binary files /dev/null and b/Dog.class differ diff --git a/Dog.java b/Dog.java new file mode 100644 index 0000000..7b888d8 --- /dev/null +++ b/Dog.java @@ -0,0 +1,11 @@ +public class Dog extends Animal implements Swimmable { + @Override + public void makeSound() { + System.out.println("Woof!"); + } + + @Override + public void swim() { + System.out.println("Dog is swimming."); + } +} \ No newline at end of file diff --git a/Main.class b/Main.class new file mode 100644 index 0000000..c15f745 Binary files /dev/null and b/Main.class differ diff --git a/Main.java b/Main.java new file mode 100644 index 0000000..6d6b5ca --- /dev/null +++ b/Main.java @@ -0,0 +1,25 @@ +public class Main { + public static void main(String[] args) { + // 测试多态 + Animal animal1 = new Dog(); + Animal animal2 = new Cat(); + + System.out.println("Testing polymorphism:"); + animal1.makeSound(); // 应该输出 Woof! + animal2.makeSound(); // 应该输出 Meow! + + // 测试 Dog 的 swim 方法 + System.out.println("\nTesting Dog's swim method:"); + if (animal1 instanceof Swimmable) { + ((Swimmable) animal1).swim(); + } + + // 测试 Cat 是否实现了 Swimmable + System.out.println("\nTesting if Cat is Swimmable:"); + if (animal2 instanceof Swimmable) { + ((Swimmable) animal2).swim(); + } else { + System.out.println("Cat is not Swimmable."); + } + } +} \ No newline at end of file diff --git a/Swimmable.class b/Swimmable.class new file mode 100644 index 0000000..5650772 Binary files /dev/null and b/Swimmable.class differ diff --git a/Swimmable.java b/Swimmable.java new file mode 100644 index 0000000..b7a501e --- /dev/null +++ b/Swimmable.java @@ -0,0 +1,3 @@ +public interface Swimmable { + void swim(); +} \ No newline at end of file