Why do we need pre_body and post_body in a sequence

In reply to hsam:

You don’t need to use pre_/post_body. If you don’t understand the situations when they are or are not called, they can be disastrous. You are much better off taking advantage of OOP and the factory overrides and explicitly wrapping your code around a call to super.body().

class my_base_sequence extends uvm_sequence#(my_item);
  task body;
    // normal sequence body code
  endtask
endclass
class my_extended_sequence extends my_base_sequence;
  task body;
    // pre_body code here
    super.body();
   // post_body code here.
  endtask
endclass