title: java interface inheritance conflicting methods
body: <p>I am learning java and confused about interface inheritance. example from a book</p>
  
  <pre><code> public interface Singer {
        void sing();
        void setRate(double rate);
        double getRate();  
    }  
  
    public interface Player {
        void play();
        void setRate(double rate);
        default double getRate() {
           return 300.0;
        }
    }
  
  public interface SingerPlayer extends Singer, Player{
        // Override the getRate() method with a default method that calls the
        // Player superinterface getRate() method
       @Override
       default double getRate() {
            double playerRate = Player.super.getRate();
            double singerPlayerRate = playerRate * 3.5;
            return singerPlayerRate;
       }
   }
  
  
  public class Employee implements Singer, SingerPlayer {
  
  }
  </code></pre>
  
  <p>The books says Employee will inherit <code>SingerPlayer.setRate()</code> method because it overrides the <code>Singer.setRate()</code> method.</p>
  
  <p>I do not see where it overrides this method.</p>