All the methods of
Servlet and ServletConfig are implemented in GenericServlet.
Only abstract method in GenericServlet is the service(ServletRequest, ServletResponse) method. The implementation of this method is left to the class which extends GenericServlet. HttpServlet happens to be one of such classes, which provides HTTP specific implementation.
Similarly we can choose to have another FTPServlet which provides FTP specific service() method implementation.
In otherwords, GenericServlet is abstract because it gives a generic signature for the service() method, leaving the implementation details to the subclass.