Analysis port inside a subscriber. Is it possible?

You can always add more ports or exports to any class extended from uvm_component. And the analysis export is not implicit, it is inherited from the base class. Or you could say that it is built-in to the base class. To say that it is implicit would mean that it gets automatically created when you use it. The analysis port is there in the base class wither you use it or not.

The way you add an analysis port (ap) to your subscriber is exactly the same way you add it to your monitor: declare it, construct it in the build phase, and call the ap.write() method from the write method you implemented in your subscriber. This is a great layering technique for translating transactions from one type to another.

class Asubscriber extends uvm_subscriber#(typeAtransaction);
  `uvm_component_utils(Asubscriber)
  function new(string name, uvm_component parent);
    super.new(name,parent);
  endfunction
  
  uvm_analysis_port #(typeBtransaction) Bap;

  function void build_phase(uvm_phase phase);
    Bap = new("Bap",this);
  endfunction

  function void write(typeAtransaction t);
    typeBtransaction Bt;
    Bt = convertAtoB(t);
    Bap.write(t);
  endfunction
endclass