-4

我想知道是否可以实现这样的代码?

public interface A {
public void execute();
}

public interface B { 
    public String execute(); 
}

class C implements A, B {
}
4

2 回答 2

7

不可以。这是不允许的,因为编译器无法判断execute您要使用哪个版本。

如果要重载方法,则需要改变方法参数,例如:

   公共无效执行();

   公共字符串执行(int someParam);
于 2012-05-20T09:42:26.917 回答
2

不,你不能。

JLS 要求每种方法具有不同的签名:

JLS 8.4 - “类的主体将两个具有重写等效签名的方法声明为成员是编译时错误(第 8.4.2 节)。”

其中 8.4.2 将覆盖等效签名指定为在类型擦除后具有相同方法名称和相同参数类型的方法签名。

于 2012-05-20T11:57:36.027 回答