[JSP ] 有HttpServletRequest類別型態的物件嗎?

看板java作者 (aligu)時間9年前 (2015/11/03 14:45), 9年前編輯推噓0(0014)
留言14則, 4人參與, 最新討論串1/2 (看更多)
(原本詢問的標題為: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到底是介面還是類別?還是兩者都是? 懇請解惑,謝謝。   -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.240.137.56 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1446533127.A.643.html ※ 編輯: aligu (123.240.137.56), 11/03/2015 14:48:45 ※ 編輯: aligu (123.240.137.56), 11/03/2015 14:53:51 ※ 編輯: aligu (123.240.137.56), 11/03/2015 14:54:43

11/03 15:01, , 1F
B extends A => A o= new B();B o=new B();差異???
11/03 15:01, 1F

11/03 15:14, , 2F
樓上的是說"is-a"嗎?這概念我懂,但如果是A implements B
11/03 15:14, 2F

11/03 15:15, , 3F
(B是介面),也有"is-a"的適用嗎?
11/03 15:15, 3F

11/03 15:44, , 4F
is like a
11/03 15:44, 4F

11/03 15:57, , 5F
那如果沒有Hello,而是寫 HttpServletRequest req = new
11/03 15:57, 5F

11/03 15:58, , 6F
HttpServletRequest() { // implementation };
11/03 15:58, 6F

11/03 15:59, , 7F
你覺得這可以叫什麼物件? 不就HttpServletRequest物件
11/03 15:59, 7F

11/03 16:01, , 8F
java是 宣告 物件名稱=new 可實體的類別,是分開的
11/03 16:01, 8F

11/03 16:01, , 9F
所以HttpServleRequest是宣告
11/03 16:01, 9F

11/03 16:03, , 10F
我是說req是什麼物件
11/03 16:03, 10F

11/03 16:04, , 11F
其實寫a是<type>物件,單純只是指a的type是<type>
11/03 16:04, 11F

11/03 16:04, , 12F
沒有特別去分type是class還是interface吧
11/03 16:04, 12F

11/03 16:07, , 13F
沒有~就是宣告~A obj->首先A是宣告,再來A是何種型態
11/03 16:07, 13F

11/04 11:20, , 14F
謝謝樓上各位的回答,我再想看看。
11/04 11:20, 14F
文章代碼(AID): #1ME5W7P3 (java)
文章代碼(AID): #1ME5W7P3 (java)