title: What is a difference between <? super E> and <? extends E>?
body: <p>What is the difference between <code>&lt;? super E&gt;</code> and <code>&lt;? extends E&gt;</code>?</p>
  
  <p>For instance when you take a look at class <code>java.util.concurrent.LinkedBlockingQueue</code> there is the following signature for the constructor:</p>
  
  <pre><code>public LinkedBlockingQueue(Collection&lt;? extends E&gt; c)
  </code></pre>
  
  <p>and for one for the method: </p>
  
  <pre><code>public int drainTo(Collection&lt;? super E&gt; c)
  </code></pre>