Implement the following class diagrams and write a main class to test all these classes.
● Each class implements the display method of the Displayable abstract class and the method should display all the current object’s and its superclass object’s information. Keep in mind, you should avoid code redundancy.
● Define appropriate __init__ method so that all the objects can be created properly.
● Define appropriate getters and setters using @property if needed for other classes’ methods. However, do not add any public or protected property or public get method for the private attribute ‘parts’ in the Machine class.