When you instantiate a C there will be constructor calls for C, B, A, and Object. A C has to be able to behave as any direct or indirect superclass, and has the fields for all of them. The job of a class X constructor is to make the object being initialized capable of working as an X.
If there is no declared constructor, the compiler creates a parameterless constructor, so every class does have at least one constructor. If a constructor that is not the Object constructor does not start with a "this" or "super" constructor call, the compiler treats it as starting with "super();", a call to a parameterless constructor for the immediate superclass.