interface A{
void abc();
}
interface B{
double abc();
}class test implements A,B{
public void abc()
{

}
public double abc()
{
return 1.0;
}
}
C#里用
class test implements A,B{
public void A.abc()
{

}
public double B.abc()
{
return 1.0d;
}
}
就可以实现 
但java不能这么写 也就是java只能避免此类问题吗

解决方案 »

  1.   

    虽然不懂C#,不过对这个例子有些想法,
    胡说八道一下。首先是语法上的,java不允许,c#允许,
    这是本身“体制”的问题,也没什么可异议的地方。接下来就是设计上了,
    如果某一个借口中,有一个行为,或者说方法,
    就说明这个行为是这种接口的特色,不管它如何重载,
    他们都是有一样的特点,
    比如一个翻译家接口,有一个transChina的方法,
    不管它的返回值是china,japan,english,它都是这个翻译家的行为。
    (这个例子不好,实际上应该设计一个“语言类或接口”来统一这些语言,说的更远了,就举这个例子吧)
    话说回来,
    一个接口里的方法,在另一个接口里同样出现,
    而且一个类还要同时实现这两个接口,
    这就是很“学术”的问题,也就是只会在C#的考试题或者无聊的面试题中出现,
    如果出现这种情况,
    应该是,至少小弟我这么觉得应该是,系统的设计出了什么问题也许我跑题了,请楼主谅解啊:)good luck