This time you will get compile time error,because there is no relation between String and StringBuffer and the compiler does not have idea for which it has to go.
Joined: May 26, 2007
Hi Anil.please be more elaborate. here dArray IS-A Object.What are you trying to justify.The default values of both Object and the array of double reference is null.Then how can you say that the output is "double array".
Joined: Feb 23, 2007
When ever the compiler finds that it can call more than one method,it will try to call for more specific one,in other words it will go for down in the inheritance tree
Object | | |--int |--double |--float 
In your example you have given both Object and double array.Now the compiler know that with null it can call both methods,so it will go for down the hieraricy.If it finds that there is no relation ship between the references you gave in the overloading method,then the compiler will give compile time error.
Try with String and StringBuffer, which i mentioned in the above post
You will get a fair idea.
[ June 20, 2007: Message edited by: anil kumar ] [ June 20, 2007: Message edited by: anil kumar ]
void println(Object x) Print an Object and then terminate the line. void println(String x) Print a String and then terminate the line. void println(char x) -------------------------------------------------------------
These are the methods from API
Now null can be applied to every one,but here char and String has no relation ship and the compiler knows this it will compile time error.