From ba1ca63b82d51b9ab3639c1bfe2afd21f0c0ee9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E9=A6=A8=E9=81=A5?= <3603458499qq.com> Date: Tue, 23 Jun 2026 17:12:21 +0800 Subject: [PATCH] Add w6 folder with animal sound system --- w6/Animal.java | 3 +++ w6/Cat.java | 6 ++++++ w6/Dog.java | 11 +++++++++++ w6/Main.java | 23 +++++++++++++++++++++++ w6/Swimmable.java | 3 +++ 5 files changed, 46 insertions(+) create mode 100644 w6/Animal.java create mode 100644 w6/Cat.java create mode 100644 w6/Dog.java create mode 100644 w6/Main.java create mode 100644 w6/Swimmable.java diff --git a/w6/Animal.java b/w6/Animal.java new file mode 100644 index 0000000..b07d6fa --- /dev/null +++ b/w6/Animal.java @@ -0,0 +1,3 @@ +public abstract class Animal { + public abstract void makeSound(); +} \ No newline at end of file diff --git a/w6/Cat.java b/w6/Cat.java new file mode 100644 index 0000000..5a0c4b4 --- /dev/null +++ b/w6/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/w6/Dog.java b/w6/Dog.java new file mode 100644 index 0000000..4880968 --- /dev/null +++ b/w6/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/w6/Main.java b/w6/Main.java new file mode 100644 index 0000000..02315e3 --- /dev/null +++ b/w6/Main.java @@ -0,0 +1,23 @@ +public class Main { + public static void main(String[] args) { + // Test polymorphism with Animal references + Animal dog = new Dog(); + Animal cat = new Cat(); + + System.out.println("Testing makeSound():"); + dog.makeSound(); // Should output "Woof!" + cat.makeSound(); // Should output "Meow!" + + // Test swim() method for Dog + System.out.println("\nTesting swim():"); + if (dog instanceof Swimmable) { + Swimmable swimmableDog = (Swimmable) dog; + swimmableDog.swim(); // Should output "Dog is swimming" + } + + // Test that Cat doesn't implement Swimmable + if (!(cat instanceof Swimmable)) { + System.out.println("Cat cannot swim"); + } + } +} \ No newline at end of file diff --git a/w6/Swimmable.java b/w6/Swimmable.java new file mode 100644 index 0000000..b7a501e --- /dev/null +++ b/w6/Swimmable.java @@ -0,0 +1,3 @@ +public interface Swimmable { + void swim(); +} \ No newline at end of file