Originally posted by Andy Morris: Both code snippets are completely legal and will compile and run without errors. I don't know how you reached your observation.
The only arrays where implicit casting is not permitted are arrays referencing primitives types.
I had created a class called "Object" in my own package. I know this is stupid, but I wanted to see (with my own eyes) that a class called "Object" would compile and extend "java.lang.Object".