Implement subscriber class with 2 analysis ports

I am developing a coverage collector class with 2 analysis ports, one to collect data from slave interface and one to collect data from master interface.

I tried to implement them using `uvm_analysis_imp_decl in following way

  //Define analysis imports using macro
  `uvm_analysis_imp_decl(_master)
  `uvm_analysis_imp_decl(_slave)

  //Declare analysis imports
  uvm_analysis_imp_master#(master_sequence_item, coverage) master_imp;
  uvm_analysis_imp_slave#(slave_sequence_item, coverage) slave_imp;

And write methods are defined as follows

  virtual function void write_master(master_sequence_item obj);
    ...
  virtual function void write_slave(slave_sequence_item obj);
    ...

But while compile I get following error message

Error-[SV-VMNI] Virtual method not implemented
/home/ip/shared/external/uvm/1.2/54853456/snps/2019.06-SP2-10-T-20210305/src/comps/uvm_subscriber.svh, 64
Virtual method ‘write’ not implemented in class
‘_vcs_unit__3386724743_cbc_coverage_11_0’ (declared in
coverage_collector.sv, at line 1).

Is there any way to implement coverage from 2 different interface in same subscriber class or do I need seperate subscriber classes?

Why did you not write

 virtual function void write_master(mester_sequence_item obj);
    ...
 virtual function void write_slave(slave_sequence_item obj);
    ...

or you could have done

uvm_analysis_imp_master#(cbc_sequence_item, coverage) master_imp;
uvm_analysis_imp_slave#(cbc_sequence_item, coverage) slave_imp;

In reply to dave_59:

Why did you not write

 virtual function void write_master(mester_sequence_item obj);
...
virtual function void write_slave(slave_sequence_item obj);
...

or you could have done

uvm_analysis_imp_master#(cbc_sequence_item, coverage) master_imp;
uvm_analysis_imp_slave#(cbc_sequence_item, coverage) slave_imp;

I have written methods and declaration as mentioned
But still facing below error in extended subscriber class

Virtual method ‘write’ not implemented in class

I suppose it’s coming as write is declared as a pure virtual method in uvm_subscriber base class