我有两个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();
}
}