The service() method of GenericServlet doesn't get called. But that's the nice thing about polymorphism. The Container calls service() on an object that implements the Servlet interface without knowing its specific class. In most cases this class will be your own Servlet, which extends HttpServlet. So through polymorphism the Container will call the most specific version of service(). However, because you never override service() yourself, the service() method of the superclass HttpServlet gets invoked.
By the way, the doXXX() methods are not called directly by the Container. The container only invokes the service() method. And in HttpServlet it is the service() method which redirects the request to the correct doXXX() method.