I want to know some real testbench examples of where virtual methods are helpful

I understand the concept of virtual methods where a child class handle can be placed in base class handle and child class methods can be called using base class handle. But can someone tell me in which scenario is this used? Any real life example would help

In reply to yr:

Every UVM example uses virtual methods. It would be hard not to. run_phase()

Please see SystemVerilog OOP for UVM Verification | Universal Verification Methodology | Verification Academy