title: How do I inherit from multiple extending generic interfaces?
body: <p>I have a few classes such that:</p>
  
  <pre><code>public class XMLStatusMessage extends XMLMessage
  {}
  public abstract class XMLMessage implements IMessage
  {}
  
  public interface IMessageListener
  {
      public void onMessage( IMessage message );
  }
  
  public interface XMLMessageListener &lt;T extends XMLMessage&gt; extends 
      IMessageListener
  {
      public void onMessage( T message ); 
  }
  
  public interface XMLStatusMessageListener extends 
      XMLMessageListener &lt;XMLStatusMessage&gt;
  {
      @Override
      public void onMessage( XMLStatusMessage message );
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>public class AStatusHandler implements XMLStatusMessageListener
  {
      //...
      @Override
      public void onMessage( XMLStatusMessage message )
      {
          //...
      }
  }
  </code></pre>
  
  <p>My problem is that AStatusHandler won't compile because I'm not also implementing public void onMessage(IMessage). I don't see why I should have to implement onMessage(IMessage) also as it already implements onMessage(XMLStatusMessage) and XMLStatusMessage is an IMessage. Is there a simple solution to this problem?</p>