Uvm_object_wrapper

In reply to Ronak Patel:

uvm_object_wrapper is a proxy class used by the UVM factory. A proxy class is a lightweight object whose sole purpose is representing the type of another object. The benefit is that you can pass the object around dynamically, whereas a true type must be statically elaborated.

See the following links for more information about how the factory works.
SystemVerilog OOP for UVM Verification | Track (especially the third section)
Using parameterized classes & factories: Object-oriented verification