title: Override method in inherited interface with subtype with generics
body: <p>I have the following hierarchy in java:</p>
  
  <pre><code>interface ObserverA {}
  
  interface A {
    void method1();
    addObserver(Observer o);
  }
  </code></pre>
  
  <p>And I want to extend it like this:</p>
  
  <pre><code>interface ObserverB extends ObserverA{}
  
  interface B extends A {
     void method2();
     addObserver(ObserverB  o);
  }
  </code></pre>
  
  <p>in such a way that the <code>addObserver()</code> method of <code>B</code> would override the same method in <code>A</code>.
  As it is it doesn't work, implementations of <code>B</code> would need to implement both versions of <code>addObserver()</code>, I wan't to have just one. </p>
  
  <p>Can this be done in a clever way that doesn't involve having to parameterize <code>A</code> like:</p>
  
  <pre><code>interface A&lt;O extends Observer&gt; { 
      addObserver(O o);
  }
  </code></pre>
  
  <p>Hackish solutions are most welcome!</p>