diff --git a/main/w6/Animal.class b/main/w6/Animal.class new file mode 100644 index 0000000..29d7528 Binary files /dev/null and b/main/w6/Animal.class differ diff --git a/main/w6/Animals.class b/main/w6/Animals.class new file mode 100644 index 0000000..4905c7d Binary files /dev/null and b/main/w6/Animals.class differ diff --git a/main/w6/Animals.java b/main/w6/Animals.java new file mode 100644 index 0000000..d34655d --- /dev/null +++ b/main/w6/Animals.java @@ -0,0 +1,56 @@ +// 抽象类Animal +abstract class Animal { + // 抽象方法makesound() + public abstract void makesound(); +} + +// 接口Swimmable +interface Swimmable { + // 方法swim() + void swim(); +} + +// Dog类继承Animal并实现Swimmable接口 +class Dog extends Animal implements Swimmable { + @Override + public void makesound() { + System.out.println("Dog barks: Woof! Woof!"); + } + + @Override + public void swim() { + System.out.println("Dog is swimming"); + } +} + +// Cat类继承Animal +class Cat extends Animal { + @Override + public void makesound() { + System.out.println("Cat meows: Meow! Meow!"); + } +} + +public class Animals { + public static void main(String[] args) { + // 多态测试 + Animal animal1 = new Dog(); + Animal animal2 = new Cat(); + + System.out.println("Testing polymorphism:"); + animal1.makesound(); + animal2.makesound(); + + // 测试Dog的swim方法 + System.out.println("\nTesting swim method:"); + if (animal1 instanceof Swimmable) { + ((Swimmable) animal1).swim(); + } + + if (animal2 instanceof Swimmable) { + ((Swimmable) animal2).swim(); + } else { + System.out.println("Cat cannot swim"); + } + } +} \ No newline at end of file diff --git a/main/w6/Cat.class b/main/w6/Cat.class new file mode 100644 index 0000000..0cf1eda Binary files /dev/null and b/main/w6/Cat.class differ diff --git a/main/w6/Dog.class b/main/w6/Dog.class new file mode 100644 index 0000000..a93f274 Binary files /dev/null and b/main/w6/Dog.class differ diff --git a/main/w6/Swimmable.class b/main/w6/Swimmable.class new file mode 100644 index 0000000..7dfcfd4 Binary files /dev/null and b/main/w6/Swimmable.class differ