Following is the assignment I need help with urgently. Thanks in advance.\r\n\r\n\r\nCreate a simple java application to help employees manage their contact list. Users must be able to store two types of contacts: business and personal. Both types have common fields as well as properties unique to them. The application needs to accept and store contacts by type. Please use an object-oriented design for the application. Also, consider usability of the system when designing the user interface. It is up to you if you want to use a menu-driven or graphical user interface; however, the approach needs to create an inheritance relationship for the contacts in order to facilitate evolving this application to easily add new contact types in the future.\r\n\r\nDetails:\r\n\r\nPlease provide .java and .class files for the following:\r\n\r\nCreate a contact list application that meets the following minimum requirements.\r\n\r\nA. Input Requirements\r\n\r\n1. Include a prompt that allows the user to enter a command from the following four options, repeating the process of displaying the menu screen until the user has selected \\\"quit.\\\"\r\n\r\no add a business contact\r\n\r\no add a personal contact\r\n\r\no display contacts\r\n\r\no quit\r\n\r\n2. Include a prompt that allows the user to enter the following identifiable information when the \\\"add a business contact\\\" command is selected:\r\n\r\no first name\r\n\r\no last name\r\n\r\no address\r\n\r\no phone number\r\n\r\no e-mail address\r\n\r\no job title\r\n\r\no organization\r\n\r\n\r\n\r\nNote: You are not required to store the contact information as persistent data in a database.\r\n\r\n\r\n\r\n3. Include a prompt that allows the user to enter the following identifiable information when the \\\"add a personal contact\\\" command is selected:\r\n\r\no first name\r\n\r\no last name\r\n\r\no address\r\n\r\no phone number\r\n\r\no e-mail address\r\n\r\no date of birth\r\n\r\n \r\n\r\nB. Output Requirements\r\n\r\n1. Display the results to the user on screen in a readable and descriptive format (e.g., [url removed, login to view]) by doing the following:\r\n\r\na. Display all contacts\' first and last names when the \\\"display contacts\\\" command is selected.\r\n\r\nb. Include a numeric key for each contact that will be used to invoke the method that displays the contact details.\r\n\r\n2. Include a prompt that allows the user to enter the numeric key to display all details of the contact in a readable and descriptive format (e.g., [url removed, login to view], output to a text file using FileWriter).\r\n\r\na. Identify contacts by type when displaying the details of a contact: business or personal.\r\n\r\n \r\n\r\nC. Design Requirements\r\n\r\n1. Demonstrate use of collections (e.g., TreeSets, ArrayList).\r\n\r\n2. Demonstrate use of encapsulation.\r\n\r\n3. Demonstrate use of inheritance by doing the following:\r\n\r\na. Create one abstract class.\r\n\r\nb. Create two subclasses.\r\n\r\n4. Demonstrate use of polymorphism by overriding a method of the abstract class in both subclasses (i.e., method that displays contact details).