У меня есть два интерфейса Java и один класс реализации.
(У меня есть использовал Eclipse для прямого запуска программы, и я не пытался проверять предупреждения компилятора и т. д., явно компилируя из командной строки.)
Почему они работают без проблем? Почему Java позволяет это, даже если он удовлетворяет "контракт" обоих интерфейсов, но создает двусмысленность в реализации класса?
Обновлен пример.
public interface CassettePlayer {
void play();
}
public interface DVDPlayer {
void play();
}
public class CarPlayer implements CassettePlayer,DVDPlayer{
@Override
public void play() {
System.out.println("This plays DVD, screw you Cassette !");
}
public static void main(String args[]) {
CarPlayer cp = new CarPlayer();
cp.play();
CassettePlayer firstInterface = new CarPlayer();
firstInterface.play();
DVDPlayer secondInterface = new CarPlayer();
secondInterface.play();
}
}