gir*_*iri 6 java abstract-class
我怀疑HttpServlet类是一个抽象类,即使类中没有任何抽象方法,所有方法都是具体的.即使没有任何抽象方法,类也可以是抽象的吗?如果是的是什么用?
谢谢
Mic*_*rdt 18
在的情况下HttpServlet,关键是这个servlet程序员通常不希望自己的servlet来支持所有4种再三主要的HTTP方法(POST,GET,PUT,DELETE),所以这将是恼人使doGet(),doPost()等方法因为程序员将被迫实现他们不需要的方法.因此,HttpServlet为除了向客户端返回错误状态代码之外什么都不做的所有方法提供默认实现.程序员可以覆盖他们需要的方法,而不用担心其余的方法.但实际上使用HttpServlet类本身没有任何意义(因为它没有任何用处),所以它是abstract.
在那里你有一个很好的例子,说明什么时候有一个没有任何抽象方法的抽象类是有意义的.
无法实例化抽象类,因此必须对它们进行子类化才能使用它.
在子类中,您仍然可以实现自己的方法或覆盖父方法.
也许将它HttpServlet作为独立使用没有意义,但它在特定的上下文中提供了必要的默认功能.您可以子类化HttpServlet以提供此上下文并访问其功能.
子类HttpServlet不必实现方法以使其自身的功能起作用.