The main objective of this assignment is to familiarize you with object oriented design and
programming. Object oriented programming helps to solve complex problems by coming up with
a number of domain classes and associations. However identifying meaningful classes and
interactions requires a fair amount of design experience. Such experience cannot be gained by
classroom-based teaching alone but must be gained through project experience.
This assignment is designed to introduce different concepts such as inheritance, abstract
classes, method overloading, method overriding, and polymorphism.
The final submission is due on week 12. Your final submission through Canvas should be a zip
file that includes the following files –
1. The java files of your assignment. Do not submit the .class file.
2. (Optional) If you are unable to complete the code, please also submit a word or pdf document
file with the brief description of problems encountered and lessons learnt. If you have not
received full marks during the demonstration and then made any change in your code
afterwards, submit a word or pdf document file with the brief description of changes as well.
1. Your final code submission should be clean, neat, and well-formatted (e.g., consistent
indentations) and abide by the formatting guidelines.
2. Identifiers should be named properly and camel case e.g. UsedCar (class) and
carPrice (variable). [Google “camel case”]
3. You must include adequate meaningful code-level comments in your program.
4. For each input from the user, display appropriate prompt message.
5. For each invalid input from the user, display appropriate error message.
6. IMPORTANT: your code should be able to compile and run under command-line.