title: Why would both a parent and child class implement the same interface?
body: <p>I inherited some legacy Java (1.4) code and this design decision appears regularly. I can't understand if there's any purpose or reason to it.</p>
  
  <pre><code>public interface SoapFacade extends iConfigurable{ }
  
  public class SoapFacadeBase implements SoapFacade{
  ...
  }
  
  public class SoapFacadeImpl extends SoapFacadeBase implements SoapFacade{
  ...
  }
  </code></pre>
  
  <p>As I understand interfaces (and my experimentation has reinforced), there is no purpose to having both the parent and the child implement the same interface. In this scenario, everything from <code>SoapFacade</code> is implemented in <code>SoapFacadeBase</code>, but the method in <code>iConfigurable</code> is implemented in <code>SoapFacadeImpl</code>. However, that doesn't create a need to have <code>SoapFacadeImpl</code> implement <code>SoapFacade</code>.</p>
  
  <p>Is there something I don't know about interfaces that would give this pattern some purpose or benefit? Are there underlying costs beyond lack of clarity that should drive refactoring it? Or should it simply be refactored for clarity/simplicity?</p>