I think these two pretty much sum it up. Having a common ancestor ensures that all classes will have some base functionality (either by the inherited methods or by providing a new implementation of these methods). This common ancestry also goes to the second point in that any class can be cast to an Object and thus be more portable.
Hi Pradeep, What timothy says is exactly right. To augument that, Think of how garbage collector works. GC invokes on the superclass object. If you create an object of human named babu, after using the behaviours i.e after reference is lost, it has to be garbage collected. How does JVM knows what object(babu) to collect. But java has single rooted hierarchy, it knows that object babu is a subclass of Object, so i collect him as garbage using the object type handle. Hope this wud help you