title: Java interface and inheritance
body: <p>If we have:</p>
  
  <pre><code>public interface Foo{}
  
  public class Bar implements Foo{...}
  </code></pre>
  
  <p>Is there a difference between:</p>
  
  <pre><code>public class BarBar extends Bar implements Foo{..}
  </code></pre>
  
  <p>and</p>
  
  <pre><code>public class BarBar extends Bar{..}
  </code></pre>
  
  <p>I see a lot of code like this and it always confuses me. Does <code>BarBar</code> need to implement <code>Foo</code>? I mean since it extends <code>Bar</code> to begin with isn't that already there? I guess my question is, what purpose does implementing <code>Foo</code> in <code>BarBar</code> serve here?</p>