As Jon Skeet said in comments, this is about a core concept (Inheritance) in Object-Oriented programming (OOP), has nothing to do with Servlets specifically (except maybe your homework 😉), and is not really a question for StackOverflow.com.
If you understand conventional programming and how conventional compiling and linking predetermine at compile-time exactly what bits will be executed at run-time, and therefore wonder how execution can seem to "jump around" between classes, then you need to learn about 'late binding' & 'dynamic dispatch', the special sauce that makes OOP so powerful.
'abstract' is a bit of distraction regarding your question. Simply means that a concrete subclass is required, but without abstract
your question remains the same.
Try reading up on Inheritance and Late Binding.