关于servlet中service()方法参数的问题

请教一下大家,servlet中的service()方法,一般会传入2个参数:ServletRequest request 和ServletResponse response 。ServletRequest和ServletResponse是2个接口,接口是不能实例化的,那么为什么可以定义他们的对象 request和response 呢?

意思就是sevlet api可以传入任何实现[code="java"]ServletRequest,ServletResponse[/code]
的类,这叫做多态,如:
[code="java"]
Object obj = new String();
ServletRequest sr = new HttpServletRequest();
[/code]

子类现实或者继承,多态的考虑

面向接口编程的思想吧 但是实际的参数应该是实现这两个接口的实现类实例

换个角度想, 如果你的参数是HttpServletRequest 和response, 那么你的参数就定死了, 就是这两个, 如果你想要扩展它, 岂不是很麻烦了 ? 或者说,你想传进来的不是Httpservletrequest, 而是servletrequest的另一个实现,岂不是不能满足你了? 这种比较底层的东西, 一般都会写的扩展性比较强, 这样更通用.

HttpServletRequest req = (HttpServletRequest)request;