> Why HttpServlet class is declared as an abstract
> although it does not have any abstract method.
As a convience the methods that can be overridden have a default implementation. If they didn't the developer would have to provide them which would clutter the code with a lot of empty methods.
> What logic made designer to make it abstract ?
To force the application developer to extend the class. Since the HttpServlet class has no implementation for any of the request handling methods (doGet, doPost etc) it makes no sense to allow the developer to instantiate a class with no functionality.
> Can anyone tell me please.
>
> Thanks
The HttpServlet class is an example that a class does not need to have abstract methods to be abstract.