title: Java interface inheritance and implementation
body: <p>I saw in the apache camel source code that </p>
  
  <pre><code>public class DefaultCamelContext extends ServiceSupport implements CamelContext, Service
  </code></pre>
  
  <p>My question is why this definition since </p>
  
  <p><code>public interface CamelContext extends Service</code></p>
  
  <p>and also </p>
  
  <p><code>public abstract class ServiceSupport implements Service</code></p>
  
  <p>Shouldn't it be just</p>
  
  <pre><code>public class DefaultCamelContext extends ServiceSupport implements CamelContext
  </code></pre>
  
  <p>?</p>
  
  <p>Is the explicit 'implements Service' needed and I am missing something?
  Generally is there any case where this might be needed?</p>