Como nós dissemos anteriormente, todas as classes derivam da superclasse Object, portanto iremos descrever com mais detalhes essa classe e entender seus principais métodos. Isso é importante, porque todas as classes herdarão esses métodos que podem ser muito úteis no desenvolvimento da programação OO. A classe Object é declarada como segue:
public class Object { public Object() {...} // contrutor public String toString() {...} protected native Object clone() throws CloneNotSupportedException {...} public equals(java.lang.Object) {...} public native int hashCode() {...} protected void finalize() throws Throwable {...} public final native Class getClass() {...} // métodos utilizados na gestão de threads public final native void notify() {...} public final native void notifyAll() {...} public final void wait(long) throws InterruptedException {...} public final void wait(long, int) throws InterruptedException {...} }