Why wasn\'t the java.lang.Object class declared to be abstract ?
java.lang.Object
Surely for an Object to be useful it needs added state or behaviour, an Object class is
I am not sure this is the reason, but it allows (or allowed, as there are now better ways of doing it) for an Object to be used as a lock:
Object lock = new Object(); .... synchronized(lock) { }