說,我有三個接口:從多個接口繼承類具有相同的方法簽名
public interface I1
{
void XYZ();
}
public interface I2
{
void XYZ();
}
public interface I3
{
void XYZ();
}
類這三個接口繼承:
class ABC: I1,I2, I3
{
// method definitions
}
問題:
如果我這樣實現:
ABC類:I1,I2,I3 {
public void XYZ() { MessageBox.Show("WOW"); }
}
它編譯良好,運行良好呢! 這是否意味着這種單一方法的實現足以繼承所有三個接口?
我如何能實現所有三個接口的方法和打電話給他們? 是這樣的:
ABC abc = new ABC(); abc.XYZ(); // for I1 ? abc.XYZ(); // for I2 ? abc.XYZ(); // for I3 ?
我知道它可以使用明確的實施完成,但我不能給他們打電話。 :(
有趣的是,這是可能的C#!就我所知,在Java中不可能單獨實現碰撞接口方法。 – 2010-05-14 06:19:09
這是可能的,是的,但我通常不會推薦它(這很令人困惑)。唯一我認爲合法的地方就是在執行'ICollection'之類的東西時,你想從普通的類定義中'隱藏'非泛型的'IEnumerable'實現。 –
2010-05-14 06:21:45