此代码完美运行。方法 test() 适用于两个接口(interface)。幕后到底发生了什么?这个特性在实际场景中有什么用处?
interface A
{
void test();
}
interface B
{
void test();
}
class C implements A, B
{
public void test()
{
System.out.println("abc");
}
}
A a = new C();
a.test();
B b = new C();
b.test();
最佳答案
因为它是一个接口(interface),所以没有什么坏处。您基本上是通过实现 A
和 B
为您的 C
类使用蓝图。 A
和 B
都说 C
应该实现一个名为 test()
您的 C
类实现了该方法,因此接口(interface)已完成其工作。
它基本上是你的 C
类说:“哦,嘿,我需要实现 test()
因为接口(interface) A
”然后你实现它。然后你的 C
类说“哦,嘿,由于接口(interface) B
,我需要再次实现 test()
”并且它看到已经有实现了一个名为 test()
的方法,因此它很满意。
您还可以在这里找到更多信息:JLS §8.4.8.4
关于java - 实现具有相同方法的多个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484325/