我怀疑 HttpServlet 类是一个抽象类,即使类中没有任何抽象方法,所有方法都是具体的。 即使没有任何抽象方法,类也可以是抽象的吗?如果是有什么用?
谢谢
最佳答案
在 HttpServlet
的情况下,要点是 servlet 程序员通常不希望他们的 servlet 支持所有 4 种常用的 HTTP 方法(POST、GET、PUT、DELETE),因此它将 doGet()
、doPost()
等方法抽象化会很烦人,因为程序员将被迫实现他们不需要的方法。因此,HttpServlet
为所有那些除了向客户端返回错误状态代码外什么都不做的方法提供了默认实现。程序员可以覆盖他们需要的方法,而不用担心其余的。但实际上使用 HttpServlet
类本身是没有意义的(因为它没有做任何有用的事情),所以它是抽象的
。
你有一个很好的例子,说明什么时候拥有一个没有任何抽象方法的抽象类才有意义。
关于java - 即使没有任何抽象方法,类也可以是抽象的吗?如果是有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2171568/