From 7824d97df110be95e65d39a56b6f7600ae49ce3d Mon Sep 17 00:00:00 2001 From: linhe Date: Tue, 14 Apr 2026 15:10:46 +0800 Subject: [PATCH] w6 --- w6/MainSix.java | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ w6/usage.md | 14 +++++++++++ 2 files changed, 80 insertions(+) create mode 100644 w6/MainSix.java create mode 100644 w6/usage.md diff --git a/w6/MainSix.java b/w6/MainSix.java new file mode 100644 index 0000000..fae8dba --- /dev/null +++ b/w6/MainSix.java @@ -0,0 +1,66 @@ +public class MainSix { + public static abstract class Animal { + protected String name; + + Animal(String name) { + this.name = name; + } + + abstract public void makeSound(); + } + + public interface Swimmable { + void swim(); + } + + public static class Dog extends Animal implements Swimmable { + Dog(String name) { + super(name); + } + + @Override + public void makeSound() { + System.out.printf("This is dog %s.%n", this.name); + } + + @Override + public void swim() { + System.out.printf("Dog %s swimming.%n", this.name); + } + } + + public static class Cat extends Animal { + Cat(String name) { + super(name); + } + + @Override + public void makeSound() { + System.out.printf("This is cat %s.%n", this.name); + } + } + + public static void trySwim(Animal animal) { + System.out.printf("Moving %s to swimming pool.%n", animal.name); + + if (animal instanceof Swimmable) { + ((Swimmable) animal).swim(); + } else { + System.out.printf("Oops, looks like %s cannot swim...%n", animal.name); + } + } + + public static void main(String[] args) { + Animal dog1 = new Dog("Adam"); + Animal dog2 = new Dog("Belly"); + Animal cat1 = new Cat("Carl"); + + dog1.makeSound(); + dog2.makeSound(); + cat1.makeSound(); + + trySwim(dog1); + trySwim(dog2); + trySwim(cat1); + } +} diff --git a/w6/usage.md b/w6/usage.md new file mode 100644 index 0000000..1585d28 --- /dev/null +++ b/w6/usage.md @@ -0,0 +1,14 @@ +# 运行记录 + +```console +$ javac MainSix.java && java MainSix +This is dog Adam. +This is dog Belly. +This is cat Carl. +Moving Adam to swimming pool. +Dog Adam swimming. +Moving Belly to swimming pool. +Dog Belly swimming. +Moving Carl to swimming pool. +Oops, looks like Carl cannot swim... +```