【发布时间】:2012-03-25 20:38:46
【问题描述】:
我有两个 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();
}
}
【问题讨论】:
-
他们为什么会有问题?这就是问题;)
-
如果您希望拥有一个带有
sayHello方法的抽象类,并让Sample扩展抽象类。也不会有问题。 -
谢谢哥们,我也有同样的问题...
-
嘿它正在实例化接口:O
标签: java compiler-construction interface multiple-inheritance