Hi,
Your Code:
The problem is with toString() function, in sense, you are trying to create the instance of the sub class, so, after the super class constructor is invoked, when u try printing "this", the sub class version of "toString()" is invoked. Since, the sub class data member "radius" is not initialized the 0.0 is printed first, later the sub class construtor initializes the "radius" and then calls the sub class version of "toString()" and hence the value is printed propertly.
Hope this helps u,
Uma.