场景一、例如,有接口A,B,它们都含有以下相同方法(方法签名相同):
package testinterface;
public interface A {
String getString();
}
package testinterface;
public interface B {
String getString();
}
那么C类可以同时正确地实现这两个接口,因为getString方法签名相同,并且它们的返回值也相同
package testinterface;
public class C implements A,B{
@Override
public String getString() {
return null;
}
}
场景二、接口A,B,有方法签名相同,但是返回值不同的方法,如下
这时可以看到,IDE会直接提示报错,在C类中,提示需要把String改成Int,以实现B的接口,但是改成Int后,又会提示要改成String,实现A的接口。
这时我们可能会想再定义一个getString(): Int方法,来实现B接口,但是这是不行的,因为这2个方法签名相同,不能重复定义了。