title: Overriding a method(with the same signature) present in both Parent Class as well as the Interface
body: <p>We have a <code>Class</code>(say <code>Animal</code>), and we have an <code>Interface</code>(say <code>Behave</code>). Both <code>Animal</code> as well as <code>Behave</code> have a method with the same signature(say <code>public void eat()</code>).</p>
  
  <p>When we try to write the body for the method <code>eat()</code> in a <code>Class</code>(say <code>Dog</code>) which <code>extends Animal</code> and <code>implements Behave</code>, which <code>eat()</code> method is actually referred to? The one in <code>Animal</code> or <code>Behave</code>. In whichever case that happens, why does it happen that way?</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>I tried this scenario on <code>Eclipse</code> before posting this question. </p>
  
  <p>An interesting part here is, even though I am implementing <code>Behave</code>, if I dont create an <code>eat()</code> method(i.e. if I dont implement <code>Behave's</code> inherited abstract method) inside <code>Dog</code>, there is no error, since I am already extending from <code>Animal</code> which has an <code>eat()</code> method.</p>