在面试中,有两个接口(interface) B 和 C,每个接口(interface)都有相同的方法 public m1() A 类实现 B 和 C ,如果 A 类必须实现方法 m1,则实现的方法将属于哪个接口(interface)。
当时我也很困惑,不知道会调用哪个方法,请指教
public interface A {
public void show();
}
public interface B {
public void show();
}
public class Test implements A, B {
public static void main(String[] args) {
A a;
B b;
Test t = new Test();
a = t;
a.show();
b = t;
b.show();
}
最佳答案
在 Java 中,两个接口(interface)重叠,并且只有一个方法。不可能提供两种单独的实现(或选择您想要的一种)。如果两个接口(interface)方法定义的返回类型不兼容,则该类不能同时扩展两个接口(interface)。
因此,a.show()
和 b.show()
都会调用完全相同的方法。
在 C# 中,您可以消除歧义。
关于java - 具有相同方法的多个接口(interface)最终由类实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30205745/