Function new() in user defined UVM classes

// constructor
  function new (string name, uvm_component parent);
    super.new(name, parent);
  endfunction : new

Why do we have to declare new constructor in every extended UVM class as its already available in UVM base classes

In reply to bachan21:

Base class arguments do not have default values .
So we provide values via extended class constructor .

In reply to ABD_91:

In there any other reason?

In reply to bachan21:

That is the only reason. It is a SystemVerilog requirement. If your base class chooses to have constructor arguments without defaults, your extended class must provide a constructor that passes arguments to the base class constructor.