Use the following code for the tasks: public class Animal { private String name; public Animal ( String name ) { this.name = name; } public String getName ( ) { return name; } public String speak ( ) { return name; } } public class Cat extends Animal { public Cat ( String name ) { super ( name ); } public String speak ( ) { return "Rawr!"; } } public class Dog extends Animal { public Dog ( String name ) { super ( name ); } public String speak ( ) { return "Woof!"; } } import java.util.ArrayList; public class Speak { public static void main ( String [] args ) { // Instantiate an object and make it speak. Animal a = ?; System.out.println ( a.speak() ); } } Task #1: Examine the contents of the Speak.java class. This file doesn't really contain much. But create at least 1 animal of either a Dog or Cat type. Then print out the results of the animal speaking. You should see a "Woof!" or "Rawr!" outputted to the console. But then modify the Dog or Cat class (whichever you created) such that the speak method returns the name of the animal, the type of the animal, and then the noise the animal makes. Such that the output looks something like this: Barkley (dog): Woof! OR Miss Kitty (cat): Meow! I recommend that you use the getName method to get the name of the animal. Test the output so that it produces the expected results. The modify the other subclass for animal such that it act similarly. Task #2: Now create your own subclass for animal. Use the Cat or Dog as a guide on how to create the new subclass. The subclass must be an animal whose first letter of the type is the same first letter as your name. For instance, if your name is "Zendaya" then you may want to make and animal subtype "Zebra". Make sure that you make a speak method for the animal such that it makes the animal's common noise. Be sure to test the animal out in the same way that you tested for Task #1. Zebulon (zebra): Yip! Task #3: But wait a second. Typical housecats don't really roar (rawr!). That's something that lions do. Make a copy of the Cat class, naming the copy "Lion" instead. It should do everything a Cat does except it should be a lion. So really the Lion class should extend the Cat class. Then go back and change the Cat class so that it says "Meow!" instead of roaring. Test the code for Cat and Lion in your Speak class to ensure that they both work. Task #4: Once you have complete task #3. Create a similar change in the Animal hierarchy for Dog. This time make a new Wolf class that extends Dog. This new class should do everything a Dog does. Except when it speaks it should howl: "Awoooooooo!". You can decide how many o's this should contain. Test the code for Dog and Wolf in your Speak class to ensure that they both work. Task #5: We should have a hierarchy of animals that looks like the image at the bottom of the page (except the Zebra will probably be different). So our last task is to make an ArrayList of all these different types of animals. Declare and instantiate t.