title: Java Generics, extended Generics and abstract classes
body: <p>I've got the following classes set up:</p>
  
  <pre><code>public abstract class Process&lt;T,S&gt; {
      ...
  }
  
  public abstract class Resource&lt;T, S extends Process&lt;T, S&gt;&gt; {
      protected S processer;
      ...
  }
  
  public class ProcessImpl&lt;EventType1, EventType2&gt; {
      ...
  }
  
  public class ResourceImpl extends Resource&lt;EventType1, ProcessImpl&gt; {
      processer = new ProcesserImpl();
      ...
  }
  </code></pre>
  
  <p>Everything is fine until I get to the <code>ResourceImpl</code>. I'm told that <code>ProcessImpl</code> is not a valid substitute  for the bounded parameter <code>&lt;S extends Process&lt;T,S&gt;&gt;</code> of the type <code>Resource&lt;T,S&gt;</code>.</p>
  
  <p>I've tried various ways of getting around this and keep hitting a wall.</p>
  
  <p>Does anyone have any ideas?</p>