I am learning java and confused about interface inheritance. example from a book
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 {
}
The books says Employee will inherit SingerPlayer.setRate() method because it overrides the Singer.setRate() method.
I do not see where it overrides this method.
SingerPlayerdoes not overridesetRate(). Maybe the book just meant that, in the event that it did override that method, thenEmployeewould inherit that overridden version. Just checking, but does the book definitely saysetRate()and notgetRate()? Could be a misreading (happens to me a lot), or even a typo in the book.