我關於Java層次模型的一些事實有點擔憂。HttpServlet的層次解釋
如Java教程說:
一個抽象類,可能無法實現方法(但他們),如果你 從抽象類擴展您必須實現的 超類的所有方法,否則新的類必須也是抽象的
但現在,我正在學習servlets類,發現即使我沒有實現所有在HttpServlet中聲明的方法,我的servlet也會運行,發生了什麼?我看到在源代碼中它們是受保護的方法(dopost,doget等),甚至它說編譯的代碼),但即使它們受保護,我們如何擴展創建新Servlet的方法,是因爲公共抽象HTTPservlet簽名? 。
我也發現了這個非常不尋常的,有什麼意思?當你在公共抽象類GenericServlet類,它實現的servlet,ServletConfig類,序列化
private static final
String METHOD_DELETE = "DELETE";
private static final
String METHOD_HEAD = "HEAD";
private static final
String METHOD_GET = "GET";
理論的所有其他部分都OK。這個想法是在未來有一個類,它不一定需要實現像httpservlet這樣的所有接口方法。
比你了,我還希望Java類的造型更清晰或更深的資源。
When an abstract class is subclassed,該子類通常爲其父類中的所有抽象方法提供實現。但是,如果沒有,那麼子類也必須聲明爲抽象。
是的我誤解了,誤讀了httservlet規則只適用於抽象方法沒有身體只是簽名,但httpsevlet方法不是抽象的,他們有實現,但編譯=)非常感謝你我明白爲什麼現在我們不需要實現這些方法和httpservlet使用的接口。
你應該閱讀「不得」爲「可能不」。 – EJP