代码如下:
interface A
{
void test();
}
interface B
{
void test();
}
public class C implements A,B{
public static void main(String[] args) {
C c=new C();
c.test();
}
public void test()
{
System.out.println("hai");
}
}
这里有o / p,但是调用了哪种界面方法我不知道请告诉我谁?
答案 0 :(得分:3)
接口所需要的只是一个名为void
的{{1}}方法,它不带任何参数。 test()
的实现在您的班级,而不是接口。
此外,您无法使用test()
实例化界面;但是,您可以执行以下操作:
new
或
A a = new C();
编辑:
如果您从方法标题中取出B b = new C();
,则无效,因为界面方法必须为{{ 1}}。尽管在声明标头时没有在接口中放置public
,但接口方法默认为public
- 这不能更改,并且将public
放在接口内的标头中是不必要的
答案 1 :(得分:0)
您的代码看起来无效,因为您无法实例化A。
您可以使用new C()
,但目前您正在做的是
A a=new A();
无效。
所以你可以这样做
A a = new C();
或
B b = new C();
但您无法实例化界面
修改: - 强>
在您在问题中进行的编辑之后,看起来test()
的实现在您的课程中,而不是界面。
答案 2 :(得分:0)
你无法启动像你正在做的界面
A a=new A();
你可以这样做
A a = new C();
然后调用哪个接口方法就没有问题了。