In reply to verif_learner:
You need to learn to look at the UVM source code.
uvm_monitor is not a parameterized class. It’s just a uvm_component with nothing in it. They (the UVM committee) could have more efficiently used typedef, but they didn’t. They could have made the class parameterized with an analysis_port since almost every monitor has one, but they didn’t.