In reply to aaubertin:
The factory only works when your override shares the same base class and unfortunately for you,
driver_generic#(ovm_sequence_item) is not the same base class as
driver_generic#(inputnop_tran). Another problem is that in order to use any virtual methods in your generic base class, they have to share the same prototype in the extended classed. So this means your common base class needs to share the same parameterizations, or be unparameterized. So this means creating a common base class for your ovm_sequence_item, or making your generic driver un-parameterized.