In reply to Sagar Shah:
There are no static classes in SystemVerilog. All class objects are constructed dynamically at runtime. You can have static class variables. The singleton pattern ensures that only one class object of the type uvm_root ever gets constructed.