In UVM, the factory override mechanism allows a testbench to seamlessly replace a base class object with a derived class object. Which of the following conditions is strictly REQUIRED for a factory override to function correctly during object instantiation?
For the UVM factory to intercept an instantiation request and provide an override type, the component or object must be registered with the factory (e.g., uvm_component_utils). Furthermore, the testbench must request the object via the factory API (type_id::create()). Using the native SV new() keyword completely bypasses the factory, breaking polymorphism. Overrides are typically configured in the build_phase, not the run_phase.