Abstract-Concrete Class Connections
An alternative to using a virtual interface handle for DUT to UVM testbench connections is to use an abstract-concrete class pair.
The abstract version of the class defines templates for all the methods that are available in the BFM. The concrete version of the class is declared in the BFM and it extends the abstract version, providing an implementation of the methods. The handle of the concrete class is assigned to the abstract handle in the agent classes via the uvm_config_db.