我有兩個Java接口和一個實現類。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();
}
}
爲什麼他們應該不會有問題?這就是問題;) – 2012-03-25 20:46:00
如果你希望你可以用'sayHello'方法創建一個抽象類,並使'Sample'擴展抽象類。這也不會有問題。 – emory 2012-03-25 20:51:26
感謝哥們,我有同樣的問題... – orchidrudra 2012-09-07 06:07:41