Problem: Consider a software system that controls a recycling machine for returnable bottles, cans and crates. A customer can return all three types of item on the same occasion. The system must check, for each item, what type has been returned. The system will register how many items each customer returns and when the customer asks for a receipt, the system will print out what was deposited, the value of the returned items and the total return sum that will be paid to the customer. This system is a standard example within object-oriented software development and has been extensively used as an example during the lectures. A draft class diagram is provided in Figure 1. Figure 1 Draft class diagram for Recycling Machine Implementation A key feature in object-oriented design are abstract types and interfaces. The definition of an 'abstract type' is 'If every member of a type T must also be a member of a subtype, then type T is called an abstract type'. Explain what this means within the context of the Recycling Machine.