大家纠结的点应该是在于, 对于接口A, 如果抽象类B实现了接口,那么子类C在实现接口时,还要不要重写方法
接口Greet
/**
* @author lixiang
* @date 2020/6/...date 2020/6/18
**/
public abstract class AbstractGreet implements Greet {
}
这里我们看到抽象类实现接口,要不要去重写方法都不会报错但是通用来说...List的接口的, 实现了不重写其中的方法,编译也不会报错, 只能说是让结构更清晰一些....这里还有一个比较有趣的现象,就是在idea中, 要重写方法时, 提示的是覆写抽象类的,而不是接口的,如下图所示:
报错的场景
上面都是正确的,其实有一种报错的场景要注意, 就是当两个不同的接口定义的方法签名不一致的时候...(方法名,入参一样,返回值不一样)的时候,对于实现类,就找不到该重写哪个了,就会报错,如下所示
GreetCopy接口
/**
* @author lixiang
* @date 2020/6/17