In reply to birdluo:
The +uvm_set_inst_override switch only works with classes that have a string name associated with with the factory. The `uvm_object_param_utils macro does not register a class with a string name, it only does type based factory registration.
To make +uvm_set_inst_override work, you can do one of two things. Extend an un-parameterized class around your parameterized class and use that as your override:
class mac_seq_mac_base_seq_ext extends mac_seq(#mac_base_seq_ext);
`uvm_object_utils(mac_seq_mac_base_seq_ext)
...
endclass
Don’t use `uvm_object_param_utils to register your class with the factory. See Parameterized Classes, Static Members and the Factory Macros - Verification Horizons