这个问题是由下面的代码引出的:
public class StartupListener extends ContextLoaderListener
implements ServletContextListener {
……
}
可以看到,ContextLoaderListener已经实现了ServletContextListener这个接口, 而StartupListener继承了ContextLoaderListener.为什么 StartupListener还要实现ServletContextListener接口?(它的父类不是已经实现这个接口了么?)
简单的说,上面的例子是下面这样的:
B implements A
C extends B implements A
就是说红色的代码有什么用?
我原来认为是多余的。实际上, 子类再次实现父类实现的接口是为了强制子类重写父类中实现的所有接口中的方法。