Modify your Account superclass so that it is abstract and contains the abstract method, computeSales(). If you added default behavior in the earlier task for computeSales(), remove this default behavior.
Leave your implementation of computeSales() in the subclasses as:
- Supplies = office supplies sold dollar amount + books sold dollar amount + apparel sold dollar amount
- Services = number of hours * rate per hour.
- Paper = number of pounds * price per pound
- Update your design document so that the UML class diagrams reflect the abstract class and abstract method.
- Modify your application so that it polymorphically processes any account objects created. Store each account object created into an array of type Account. For each element in this array, call the computeSales() method and display the results. Use the example of polymorphically processing employee objects in Chapter 10 as inspiration.
- Test your application and verify your results. Take screenshots to demonstrate that your application works.
Intermediate-level Java programming should be demonstrated in your application:
- There should be implemented constructors for each class.
- The toString() method should be overridden to provide readable string representation of each object.
- Getters and setters need to be implemented to enforce data hiding.
- Code should be fully commented.
- Program flow should be logical.
- Behavior should be encapsulated into methods avoiding all encompassing large main() methods.
- Projects should be developed in NetBeans and zipped prior to submission.
- Code should compile and run free of exceptions, indicating that debugging tools were used to eliminate any run time errors.
Submit the following:
- Zipped NetBeans project
- Design document