只是为了好奇,我尝试这样做:具有相同名称的继承方法,它是如何工作的?
public interface test1 {
public Object method1(String str);
}
public interface test2 {
public Object method1(String str);
}
public class Test implements test1, test2 {
public static void main(String... args) {
}
public Object method1(String str) {
return new Object();
}
}
我从Eclipse的期待某种错误的在线public class Test implements test1, test2 {
,却没有一个。
- 为什么没有编译时错误,因为有方法名称的冲突 ?
- 在
class Test
中继承了多少种方法? - 如果上述问题的答案是2,那么究竟我们实现了哪种方法 ?
- 而在运行时,如何正确实施的方法是 被选中?而不是另一个?
- 最后,有没有一种方法来实现两者? (我几乎可以肯定,答案是否定的)
我知道从设计的角度来看,这可能不会发生在现实世界的情况下,但正如我刚才提到的,它刚刚来到我的思想和我试了一下。
任何澄清/参考非常感谢。
有什么问题?这两个接口都承诺任何实现它们的类都有一个方法'method1(String)',你的'Test'类实现了这个承诺。 –
如果你有interface1 {public int method1(String var); }和interface2 {public String method1(String var); }。那么你会得到一个错误,因为没有执行其中的一个(你无法解决这个问题。) –
@Angelo Neuschitzer:但在那种情况下根本就没有碰撞 – Bhushan