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)的实现来实现每个接口的实现方法。使用接口,您只需要履行合同,因此调用哪个方法没有歧义-如果您使用类型为example1example2的引用,它将仍然是相同的checkInt方法,而class1被调用。

10-08 08:59