the specification by describing the classes and their relationships. Note that you are NOT required to write Python code.
- Highlight the relationships between classes such as inheritance and object composition, and abstract superclasses, if any.
- Suggest a few instance (or object) variables and class variables, instance (or object) methods, class methods, abstract methods and overriding methods, if applicable, for each class.
- Justify your design by giving reason(s) for your design.
Analyse the above UML and explain the bullet points.