场景一、例如,有接口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个方法签名相同,不能重复定义了。