Why the task body() inside sequence is of type virtual?

Hi All,
Fine as the the concept of virtual, if defined in the base class as virtual there is no need to specify that same function as virtual in the extended class!!!
BUT
In the ovm_sequence_base, the task “body” is declared to be of type virtual, then why are they again defining it to be of type virtual when they create the custom sequence extending the base sequence in all the example given along with the ovm package. Is there any specific need for the same??? If so kindly please let me know.
Thanks,
Desperado → Just escaped from the accident

From: http://www.learncpp.com/cpp-tutorial/122-virtual-functions/

Only the most base class function needs to be tagged as virtual for all of the derived functions to work virtually. However, having the keyword virtual on the derived functions does not hurt, and it serves as a useful reminder that the function is a virtual function rather than a normal one. Consequently, it