title: Why use <T extends Superclass> instead of just Superclass?
body: <p>Good morning, this is taken from the oracle tutorials,
  Suppose we have</p>
  
  <pre><code>class Shape { /* ... */ }
  class Circle extends Shape { /* ... */ }
  class Rectangle extends Shape { /* ... */ }
  </code></pre>
  
  <p>And the method</p>
  
  <pre><code>public static &lt;T extends Shape&gt; void draw(T shape) { /* ... */ }
  </code></pre>
  
  <p>My question is as follows, why would you ever use <code>&lt;T extends Shape&gt;</code> instead of <code>Shape</code>? <s>Don't they return the same exact thing anyway? A Shape in this case</s>.</p>