In reply to brambabu:
If you want to access str_val, then you have to have to use a class variable that knows it exists. Also, move your code from OVM to UVM.
task run_phase(uvm_phase phase);
driver_extended drv_ext;
phase.raise_objection(this);
if(!$cast(drv_ext, ag1.drv)) `uvm_error("OOPS","driver override did not work")
`uvm_info("VALUE",$psprintf("%s",drv_ext.str_val),UVM_LOW)
#100;
phase.drop_objection(this);
endtask