title: Why does every object in Java implicitly extend java.lang.Object class?
body: <p>I have been programming in Java for quite some time, but when I tried to explain what an <code>java.lang.Object</code> class is to a friend, I could not come up with more than a simple one-liner:</p>
  
  <blockquote>
    <p>All objects in Java extend <code>java.lang.Object</code> implicitly</p>
  </blockquote>
  
  <p>I was not quite sure why it should do so.</p>
  
  <p>So, I looked upon the source code on <a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/lang/Object.java" rel="noreferrer">GrepCode</a>, hoping that I can find some clues. Now I know what a <code>java.lang.Object</code> is and what it does, I want to know if there was any specific reason as to why it was designed this way. </p>
  
  <p>My question still prevails: why should every object extend <code>java.lang.Object</code>?</p>