shailendra,
you are getting close to the answer for your own question. The call to init method is something related to the servlet engine. The servlet engine first call to a servlet when it is invoked would be through the init(ServletConfig config) and the servlet engine would pass in the ServletConfig object to the method.
Most of the times you call super class ie HttpServlet init() method through our init() method so that after we are done initializing, rest of the initialization would be done by the super class init() method. If the servlet engine is not able to find an init in your servlet then it tries to look up the super class init() method and try to run it.
Hope it answers your tricky question
Satish