我正在学习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/