(原本询问的标题为:HttpServletRequest为什么是物件",
但想想觉得问的不对,所以改了问题标题)
请问关于"接口"、"接口物件"的一个基本的问题,但我一直想不懂。
我在看良葛格的"Servlet & JSP教学手册(第二版)的
3-2 页末段有一段话:
"当请求来到HTTP服务器,而HTTP服务器转交请求给容器时,
容器会建立一个代表当次请求的HttpServletResquest物件,(后略)"
在次页也就是3-3页一开始也有一段话:
"如果你查询HttpServletRequest、HttpServletResponse的API文件说明,
你会发现它们都是接口(interface),(后略)"
那我的疑问在于,HttpServletRequest既然是个接口,
应该顶多就是让其他类别去实作(implement),
比如写了一个Hello类别,并实作了HttpServletRequest接口,
(public class Hello implements HttpServletRequest { ... })
那么当我new Hello()后,也就是实例化的物件不就应该称作Hello物件 ?
怎样也不应该被称作是HttpServletRequest物件吧?
我查了一些资料,有说接口不能被实例化,但也有"接口物件"这种名词,
而且在Servlet的doGet()或doPost()方法中,一开始都会这样写:
"protected void doPost(HttpServletRequest req,
^^^^^^^^^^^^^^^^^^^^^^
HttpServletResponse resp) (后略)"
^^^^^^^^^^^^^^^^^^^^^^^^
这不就是说req是一个HttpServletRequest类别型态的物件?
那HttpServletRequest到底是接口还是类别?还是两者都是?
恳请解惑,谢谢。