说,我有三个接口:从多个接口继承类具有相同的方法签名
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