Solution class extends C, i know, I just deleted the inheritance so I can verify the code so it shows here. Anyway, I solved the problem but I don't understand the following: 1. How is CCB printed considering that nothing from C class is called. Is it because when a Solution class object is created, a Solution C class default constructor is called as well? Even so, the output shouldn't it be 'CBAYS' ? Where is the second 'C' coming from? Is it coming from JustAnInterface interface which has a B class that extends class C so, when B class is called from the Solution C class default constructor 'C' is printed for a second time and then followed by 'B' ?