Doubt in universal verification methodology

class mem_seq_item extends uvm_sequence_item;
function new(string name = "mem_seq_item");
super.new(name);
endfunction
endclass


as Iam new to the uvm I couldnt understand why we need to pass the string “mem_seq_item”… and what is the need of the calling super.new(name) and passing the same string to that costructor function …

class a;
int a;
function new();
a=6;
endfunction
endclass

class b extends a;
int b;
function new();
super.new();
endfunction

endclass

now if I construct a object for extended class automatically the property “a” in the base class will have visibility in the extended class “b” right… and it makes me some sense why iam using a super.new(); there…

In reply to vkgannoju:

If you are new to the UVM you should start to weatch the UVM course videos from the
Verification Academy. This will you give the right insight to the UVM.
You should not have doubts. The UVM is now successfully established in productive verification projects.

In reply to chr_sue:

In reply to vkgannoju:
If you are new to the UVM you should start to weatch the UVM course videos from the
Verification Academy. This will you give the right insight to the UVM.
You should not have doubts. The UVM is now successfully established in productive verification projects.

yes u may be right, as a learning engineer how can we dont have a doubt while learning and yes i know that uvm is well established methodology iam not at all questioning on the methodology ,I just wanted to have clarity on what iam writing in the code …

In reply to vkgannoju:
All classes derived from uvm_object need to pass a string name as an argument to its constructor which is used mainly for debugging. If your base class has a constructor argument without a default, you must call super.new(pass_arguments_without)defaults) when extending. This is a basic SV requirement, not specific to the UVM. You could also do

class mem_seq_item extends uvm_sequence_item;
  function new();
    super.new("mem_seq_item");
  endfunction
endclass

That also satisfies the SV requirement, but the if you want to use the UVM factory create methods, that method will try to pass a name argument to the construction of mem_seq_item and you would get a compiler error because there is no longer a name argument to the mem_sew_item::new constructor.