大家纠结的点应该是在于, 对于接口A, 如果抽象类B实现了接口,那么子类C在实现接口时,还要不要重写方法
接口Greet
/**
* @author lixiang
* @date 2020/6/...,要不要去重写方法都不会报错但是通用来说, 抽象类的作用就是,要有一个通用的实现,所以一般来说,还是实现方法比较好, 然后再抛一个抽象的具体实现, 如下所示:
/**
* @author lixiang...Greet接口,但是因为AbstractGreet 已经实现过了接口,所以这里就不用再实现接口的cheer方法, 只需要实现抽象类的doCheer()方法就可以了,当然也可以实现
@Override...这里还有一个比较有趣的现象,就是在idea中, 要重写方法时, 提示的是覆写抽象类的,而不是接口的,如下图所示:
报错的场景
上面都是正确的,其实有一种报错的场景要注意, 就是当两个不同的接口定义的方法签名不一致的时候...(方法名,入参一样,返回值不一样)的时候,对于实现类,就找不到该重写哪个了,就会报错,如下所示
GreetCopy接口
/**
* @author lixiang
* @date 2020/6/17