In reply to jthakkar:
But someone else could create class C extends B, and class C might have dependencies on A. If class B’s constructor doesn’t call super.new() the construction will not work.
Plus there are implementation dependencies in any base class that are not immediately obvious. Class A constructor will allocate memory for its members (x). Class B’s constructor will allocate memory for its members (p) and assume an offset in memory based knowing how much memory class A was going to allocate.