A类可以实现多个接口。
我不明白的是在这种情况下会发生什么:
public interface example1 {
void checkInt(int a);
}
public interface example2 {
void checkInt(int b);
}
public class class1 implements example1,example2 {
void checkInt(int c){
System.out.print(c);
}
this.checkint(5);
}
我试图运行它,它给了我编译错误。但是我的问题是,我是否可以实现两个接口,它们的功能具有相同的签名?
最佳答案
您遇到什么编译错误?因为this.checkint
的大小写错误,应该是checkInt(5)
?另外,您还将方法的范围从隐含的公共(因为所有接口方法都是)减小为默认值(打包保护)。 checkInt
方法需要在实现类中公开。
两个接口都定义了该方法,但这很好,因为class1
上有一个实现。因此class1
通过其checkInt(int i)
的实现来实现每个接口的实现方法。使用接口,您只需要履行合同,因此调用哪个方法没有歧义-如果您使用类型为example1
或example2
的引用,它将仍然是相同的checkInt
方法,而class1
被调用。