The Various Kinds of UVM Component
Although we introduced the class uvm_component above, that class is not used directly very much in practice. Instead, UVM provides several alternative kinds of component for use in various contexts. Each of these component types is a different SystemVerilog class, and each of these classes extends uvm_component, which means that each inherits all the methods and properties of their base class uvm_component.
Here is a list of the main kinds of UVM component. There are others, but they are less important.
Easier UVM recommends that you select components from the list above rather than just using the vanilla uvm_component. This will make your intent clearer to the reader.
The expected role of each kind of component has been described extensively elsewhere. See for example the Getting Started tutorial.