title: Cyclic inheritance hierarchy in Java
body: <p>I know following cyclic inheritance hierarchy is not allowed in Java. Compiler throws an error, but what I'm really interested is knowing the exact reason for the compilation failure.</p>
  
  <pre><code>class A extends B{}
  class B extends C{}
  class C extends A{}  // this will give you compile time error.
  </code></pre>
  
  <p>What is the thing due to which the compiler will throw an error, the moment I write the code <code>class C extends A{}</code></p>