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