Inheritance And Polymorphism
Now that your ordering system is constructed in a truly object-oriented manner, you can take advantage of this organization. Consider another product that is similar to your existing product but that has one property or attribute that is somewhat different. As a concrete example, assume that your product has a size property and that the valid values for size are large, medium, and small. A slightly different product might use size values 10”, 15”, 20”, and 25”. These two products would have names: a string. However, the value in the name field would be different for these two different kinds of products. In particular, one is an int and the other is a string.
Complete the following:
- Create a base class (also called a superclass) that contains all of the properties that are common to both of these products. Create 2 derived classes (also called subclasses) that contain different kinds of sizes. If your product does not already have a name property, you will need to add one along with appropriate get- and set-methods. Modify your program so that at an appropriate point in the ordering process, the program requests the name or kind of product. At that point, the correct kind of product class needs to be instantiated. Polymorphism should ensure that the correct kind of size information or method is used. Modify your program so that it requests 3 products. Create an array of products and save all of the product instances in this array. You might want to think about how an indefinite number of product orders might be handled. However, do not implement this extension for this course. You will need to change how you handle file output or input. Instead of creating or writing a new file for each product, you need to create an empty file when the program starts. Each new product should then be added to the file. You no longer need to create the confirmation dialog based on data that are read back in after each individual product is ordered. Instead, you will confirm the entire 3-product order after all 3 product orders have been completed. This can be done by reading the order file and displaying or confirming the product orders one after another.
- You must revisit your UML diagrams one last time and revise them to represent the final online ordering system in structural diagrams (the class diagrams) and in a behavioral diagram (the use case diagram).
New Content for Week 5
The Phase 5 Individual Project deliverables are as follows:
- Save the final program code that you just developed and ran successfully in a .zip file that includes all of your Java project files. Update the Key Assignment design document title page with a new date and project name. Update your previously completed work based on your instructor’s feedback. Perform a screen capture of each of the ordering system dialogs that are displayed during execution just after you have entered the requested information. Place these screen captures in Week 5: Inheritance and Polymorphism.
- Review and revise your class diagrams and use case diagrams where appropriate to include the new program organization and structure.