To answer your doubt, the reason is due to the limited specifications of the interface which only lays emphasis on what the class is doing but does not lay any emphasis on how the class is doing it. Two classes might define different ways of doing the same task for which the subclass cannot choose which one to pick and this is one of the cons of the multiple inheritance.