Deux interfaces avec la même signature de méthode implémentée en classe Java

J'ai deux interfaces de Java et de mise en œuvre de la classe.

(J'ai utilisé Eclipse pour lancer directement le programme, et je n'ai pas essayer de vérifier tout d'avertissement du compilateur et cetera explicitement à la compilation en ligne de commande.)

Pourquoi font-ils fonctionner sans problème? Pourquoi Java permettre ce, même lorsqu'il satisfait le "contrat" de deux interfaces, mais créer une ambiguïté dans la mise en œuvre de la classe?

Mise à jour de l'exemple.

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();
    }
}

source d'informationauteur Rakesh Waghela