假设你有两个接口 I1 和 I2 两个接口都有相同的方法
1)public int add(int a) throws exception e1 //(Interface 1)
2)public int add(int a) throws exception e2 //(Interface 2)
现在一个类同时实现了 I1 和 I2。
@override
public int add(int a) exception e1
{
//adding operation
}
注意:我知道如果您实现多个具有相同方法的接口,那么实现类中将只有一个实现。
编译器是否根据 throws 子句推断此方法是来自 I1 还是来自 I2?是否需要方法签名说明?(我知道签名包括名称和传递的参数。)
如果我们已经实现了这两个接口,然后我们只抛出 e1 ,编译器是否会允许这样做,因为实现类并没有真正实现这两个接口?会不会导致钻石结构问题?
我们是否需要使用 throws 子句 e1 和第二次 e2 实现相同的方法?当我尝试这个时,编译器告诉我我有重复的方法。
如果我们先实现 I1,那么它说它是 I1 的方法,如果我们先写 I2,那么它说它是 I2 的方法。解释为什么会这样。