用相同的方法实现多个接口
问题内容:
此代码完美地工作。方法test()适用于两个接口。幕后到底发生了什么?在实际情况下,此功能有何用处?
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();
问题答案:
因为它是一个接口,所以不会造成任何危害。C
通过实现A
和,您基本上是在为您的课程使用蓝图B
。双方A
并B
说,C
应实施一个名为方法test()
您的C
类实现了该方法,因此接口已完成其工作。
基本上,您的C
班级在说:“哦,我需要test()
因为接口A
而实现”,然后您就实现了。然后您的C
班级说:“哦,嘿,test()
由于接口我需要再次实现B
”,它看到已经有一个称为test()
Implemented
的方法,因此很满意。
您还可以在这里找到更多信息:JLS§8.4.8.4