java接口继承冲突方法

时间:2016-06-24 12:26:31

标签: java

我正在学习java并且对界面继承感到困惑。书中的例子

 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 {

}

书中说员工将继承SingerPlayer.setRate()方法,因为它会覆盖Singer.setRate()方法。

我没看到它覆盖了这个方法。

1 个答案:

答案 0 :(得分:1)

SingerPlayer中的

getRate()将覆盖Singer中的getRate()。 SingerPlayer继承getRate()sing()play()