我正在学习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()方法。

我看不到它在哪里覆盖了此方法。

最佳答案

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

关于java - java接口(interface)继承冲突方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38013435/

10-11 20:42