It doesn't create 2 objects, it only creates one object of custom class . The super class constructor is called to initialize the fields of the super class as by definition the super class must be initialized to construct the sub class. But remember the created object is an instance of both the custom class as well as the java.lang.Object.
Read JLS 12.5 to know how it works. A snippet :
Whenever a new class instance is created, memory space is allocated for it with room for all the instance variables declared in the class type and all the instance variables declared in each superclass of the class type, including all the instance variables that may be hidden
Suggested Reading:
Does invoking a constructor mean creating object?
answered 2013-07-23T07:34:48.087