In reply to madhuri89:
// As my_env_config_obj is extended from uvm_object, create method
// requires object name only.
m_env_cfg = my_env_config_obj::type_id::create("m_env_cfg");
// my_env is extended from uvm_component and it requires name as well as parent
// type name, given by 'this'
m_env = my_env::type_id::create("my_env", this);
We use create() method because, if any overrides are registered with the factory, the create method returns object of override type(by type I mean type of class). So, basically we get child object on parent handle if overrides are registered. Whereas new() method returns object of type its being called on.