I dont feel there is any difference between creating the objects inside & outside a constructor. Normally when ever a object is created the corresponding constructor or atleast a default constructor is called.
If a class extends from some other class and when ever a object of the child is created, the constructor in the child class automatically invokes the default constructor in the super class & this goes till the top level heirarchy of class.