title: Why is "extends T" allowed but not "implements T"?
body: <p>Is there a special reason in Java for using always &quot;<code>extends</code>&quot; rather than &quot;<code>implements</code>&quot; for defining bounds of type parameters?</p>
  <p>For example:</p>
  <pre><code>public interface C {}
  public class A&lt;B implements C&gt;{} 
  </code></pre>
  <p>is prohibited, but</p>
  <pre><code>public class A&lt;B extends C&gt;{} 
  </code></pre>
  <p>is correct. What is the reason for that?</p>