Incompatible class assignment error

In reply to dave_59:

below is the master transaction


class eit_axi_master_transaction #(parameter ADDR_WIDTH = 32, DATA_WIDTH = 32) extends uvm_sequence_item;
   
 /////////////////////////////////////////////////////////////////////////////// 
 // bit [(ADDR_WIDTH-1):0] Lower_value=0;
 // bit [(ADDR_WIDTH-1):0] Upper_value=`MAX_ADDR;
 //////////////////////////////////////////////////////////////////////////////
 
 //ADD_ID will be used as AWID & ARID in child write/read classes
  rand bit [3:0]ADD_ID;

 //DATA_ID will be used as form WID & RID in child write/read classes
  rand bit [3:0]DATA_ID;

  rand bit [(ADDR_WIDTH-1):0]ADDR;
  rand bit [7:0]LEN;
  rand bit [2:0]SIZE;
  rand bit [1:0]BURST;
   
  
 `uvm_object_param_utils_begin(eit_axi_master_transaction #(ADDR_WIDTH,DATA_WIDTH))
    `uvm_field_int(ADD_ID,UVM_ALL_ON)
    `uvm_field_int(DATA_ID,UVM_ALL_ON)
    `uvm_field_int(ADDR,UVM_ALL_ON)
    `uvm_field_int(LEN,UVM_ALL_ON)
    `uvm_field_int(SIZE,UVM_ALL_ON)
    `uvm_field_int(BURST,UVM_ALL_ON)
  `uvm_object_utils_end

  //---------------------------------------------------------------------------------------------------------------------------------------------
  // Constraint: This constraint help to work VIP as per specification
  // Provide ADDRESS range in MAX_ADDR_RANGE : User can give this address via test cases
  //---------------------------------------------------------------------------------------------------------------------------------------------
  
  //Constraint for MAX address generation
///////////////////////////////////////////////////////////////////////////////////
// constraint MAX_ADDR_RANGE {  ADDR inside {[Lower_value:Upper_value]};  }
  constraint MAX_ADDR_RANGE {  ADDR inside {[0:`MAX_ADDR]};  }
/////////////////////////////////////////////////////////////////////////////////
   
//Constraint for generating only INCR burst for LEN greater than 15
  constraint BURST_TYPE_cr {if (LEN > 'd15) BURST=='b01 ;}
  
//Constraint generating NOT generating Reserved type
  constraint BURST_NOT_BE_RESERVED_cr {BURST != 'b11;}
  
  constraint ADD_ID_DATA_ID_MATCH_cr {ADD_ID == DATA_ID ;}
  
//Constraint for generating Aligned addresses for Wrap burst
  constraint WRAP_CR{if(BURST=='b10)  ADDR ==int'(ADDR/2**SIZE)*(2**SIZE); LEN inside{1,3,7,15};  }
  
  
//Constraint for keeping generated data size less than or equal to dat-bus
  constraint SIZE_value_cr {2**SIZE <= (DATA_WIDTH/8) ;}

  function new(string name = "eit_axi_master_transaction");
    super.new(name);
  endfunction
endclass : eit_axi_master_transaction


/*------------------------Extended WRITE transaction class------------------------------*/
 class eit_axi_master_write_transaction #(parameter ADDR_WIDTH = 32, DATA_WIDTH = 32) extends eit_axi_master_transaction #(ADDR_WIDTH,DATA_WIDTH);
  
  //---------------------------------------------------------------------------------------------------------------------------------------------
  // DATA and STROB are dynamic array because we have to genrate that based on the transfer size
  // Used WDATA constraint. It help to genrate random data as we required
  //---------------------------------------------------------------------------------------------------------------------------------------------
  
   rand bit [(DATA_WIDTH-1):0] WDATA[];
  rand bit [(DATA_WIDTH/8)-1:0] WSTRB[];
  bit[1:0] BRESP;

`uvm_object_param_utils_begin(eit_axi_master_write_transaction #(ADDR_WIDTH,DATA_WIDTH))
 
    `uvm_field_array_int(WDATA,UVM_ALL_ON|UVM_NOCOMPARE) //  no compare
    `uvm_field_array_int(WSTRB,UVM_ALL_ON|UVM_NOCOMPARE) //  no compare
    `uvm_field_int(BRESP,UVM_ALL_ON|UVM_NOCOPY|UVM_NOCOMPARE)  // no copy no compare
     `uvm_object_utils_end

  constraint WSTRB_size_cr {WSTRB.size() == 1 ;}
  // dynamic array size declaration  
  
   constraint WDATA_size_cr {WDATA.size() == LEN +1 ;}

  //array element has byte dependent upon size.
  constraint WDATA_element_size_cr { foreach( WDATA[i]) WDATA[i]<=((2**((2**SIZE)*8)-1));}
  
  function new(string name = "eit_axi_master_write_transaction");
    super.new(name);
  endfunction
 endclass : eit_axi_master_write_transaction
/*-------------------------------------------------------------------------------------*/

    
/*------------------------Extended READ transaction class------------------------------*/
 class eit_axi_master_read_transaction #(parameter ADDR_WIDTH = 32, DATA_WIDTH = 32) extends eit_axi_master_transaction #(ADDR_WIDTH,DATA_WIDTH);
  
   //---------------------------------------------------------------------------------------------------------------------------------------------
  // DATA and RESP are dynamic array because we have to genrate that based on the transfer size
  //---------------------------------------------------------------------------------------------------------------------------------------------
  
  bit [(DATA_WIDTH-1):0] RDATA[];  
  bit [1:0] RRESP[];
  
 `uvm_object_param_utils_begin(eit_axi_master_read_transaction #(ADDR_WIDTH,DATA_WIDTH))
    `uvm_field_array_int(RDATA,UVM_ALL_ON|UVM_NOCOPY|UVM_NOCOMPARE) // no copy no compare
    `uvm_field_array_int(RRESP,UVM_ALL_ON|UVM_NOCOPY|UVM_NOCOMPARE)     // no copy no compare
  `uvm_object_utils_end

function new(string name = "eit_axi_master_read_transaction");
    super.new(name);
  endfunction
endclass : eit_axi_master_read_transaction
    
 /*-------------------------------------------------------------------------------------*/