title: In Java when one interface extends another, why would one redeclare a method in a subinterface?
body: <p>I've been looking at the JMS API from J2EE and found a strange behavior where certain methods that are declared in an interface (e.g., createQueue in Session) are declared again in the subinterfaces such as QueueSession, and with identical documentation.</p>
  
  <p>Since an subinterface "inherits" all the method declarations of the interface it inherits, and since the JavaDoc tool has no problem sorting out the JavaDocs of the subinterface and creating an "inherited operations" list, I can't figure out what this achieves.</p>
  
  <p>The only think of is that initially the call was in Session, and then moved to QueueSession when the specific subclass was created, though then I would have expected to see something in the documentation of the upperclass. But this is just conjecture.</p>
  
  <p>So the question is:
  Is there a convincing reason to redeclare a method in a subinterface?</p>