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