1. Create a class hierarchy which has an abstract class called WordList (the same class as in project 2 but it is abstract). This class should have two subclasses: UnsortedWordList and SortedWordList, each having a method called add. In the UnsortedWordList the method add will add to the end of the list (append), and in the SortedWordList it will do an insert. So now, rather than in project 2 where you used two of the same kind of list (WordList) you will use one unsorted list and one sorted list.
2. Create a new exception called IllegalWordException by extending lllegalArgumentException.
3. When you create a new Word from a String read from the input file, catch any exceptions thrown by the constructor and print the offending string to the console along with the message from the Exception. The constructor should check that the word is 3 characters, and all the characters are letters.
4. Add a File menu to your GUI which has menu items for Open and Quit. You should now be able to select an input file using the GUI.
The format of the input file will be the same as Project 1.