Why run_phase is virtual in driver class?

In reply to chris90:

Hi all,
Hi @chris90 thank u for quick reply, but my question is why we need to use virtual run_phase especially in driver class, if we extended that driver class then only it is useful otherwise it is not necessary to use virtual.

In most of my projects driver class didn’t extended but still they are using the virtual run_phase.

So, pls let me know 1. why we need to use virtual run_phase in driver class without extention ?
2. If extended then provide one example ?

Thanks in advance.