ok,i dont have exact explanation but i think that the methods wait(),notify(),notifyall(),can only be called by a thread that is the owner of this object's monitor.
A thread becomes the owner of the object's monitor in one of three ways:
By executing a synchronized instance method of that object. By executing the body of a synchronized statement that synchronizes on the object. For objects of type Class, by executing a synchronized static method of that class. Only one thread at a time can own an object's monitor.
i think thats why these methods are in Object class rather in Thread class.