有关HttpServletRequest接口的问题
接口是一个抽象类,它必须先实现这个接口才能创建一个对象,应该没错。可是下面的标准Servlet代码是这样的:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter();
response.setContentType();
......
request.getXxx();
......
}
里面的request,response应该是属于接口类的对象,但怎么没看见对HttpServletRequest和HttpServletResponse接口进行实现呢?
问题点数:100、回复次数:6Top
1 楼killme2008(为了生态平衡,请保护蛤蟆)回复于 2006-03-20 21:16:12 得分 50
首先,接口不是抽象类,接口跟抽象类是不同的概念
其次,接口可以做为实现类的类型,如
public interface A{...}
public class B implements A{....}
A a=new B();
Top
2 楼killme2008(为了生态平衡,请保护蛤蟆)回复于 2006-03-20 21:17:16 得分 0
所以request,response并不是接口的对象,只是实现这个接口的类的对象Top
3 楼zty_nit()回复于 2006-03-20 21:35:36 得分 0
回答的好,你说得对,但是还有一点不明白:但怎么没看见对HttpServletRequest和HttpServletResponse接口进行实现的类呢?也就是说,没有看见对request和response对象进行创建的过程(比如X实现了上述接口,没有看到HttpServletRequest r = new X())Top
4 楼killme2008(为了生态平衡,请保护蛤蟆)回复于 2006-03-21 08:09:30 得分 50
有啊,你没仔细看
在javax.servlet.http包里面有两个类
HttpServletRequestWrapper
HttpServletResponseWrapper
分别实现了HttpServletRequest,HttpServletResponse接口
Top
5 楼scottwhb()回复于 2006-03-21 08:39:20 得分 0
楼上正解Top
6 楼wmzsl(王明哲)回复于 2006-03-21 08:53:23 得分 0
呵呵来晚了,顶一下Top




