In reply to ABD_91:
The override replaces the object that is created at runtime. However, at compile time, you need to use the right handle type. Your driver is specialized to use the base type but you have hardcoded references to properties A and B that only exist in the child class. This driver uses child_seq_item properties, so declare it that way.
class mem_driver extends uvm_driver #(child_seq_item);
Or move the properties A and B from the child class into the base class.