title: How can a class have a member of its own type, isn't this infinite recursion?
body: <p>Say I define a class that has as a member a variable of the same type as itself.</p>
  
  <pre><code>public class Abc {
      private Abc p;
  }
  </code></pre>
  
  <p>This actually works, much to my surprise. </p>
  
  <p>Why I think it shouldn't: creating an instance of <code>Abc</code>, it contains a variable of type <code>Abc</code>, which contains a variable of type <code>Abc</code>, which contains a variable of type <code>Abc</code>, which .....</p>
  
  <p>Obviously I'm wrong, could someone enlighten me as to how?</p>