我正在学习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()
方法。
我没看到它覆盖了这个方法。
答案 0 :(得分:1)
getRate()
将覆盖Singer中的getRate()
。 SingerPlayer继承getRate()
,sing()
和play()
。