Let me "try" to explain why ....
ahem
C extends B and B extends A
So, if you want to create an Object of C, A has to be created
*, or a better
word would be .. Constructed.
Next, B will be constructed and then C.
Thus the constructors will be called in that order.
You can choose to call a specific Immediate parent constructor by using super keyword
However skipping B's constructor would mean that C will be created without B and thus will not work.
* Note that only one object is created not 3