Inheritance and nesting notation of classes in UVM

In reply to Jonathan_Alvarez:
I disagree with the terms parent and child when referring to OOP inheritance. Parents create(construct) children and they are distinct objects. When you inherit property, that property becomes yours and all your property is part of one object.

The UVM use terms parent and child to refer to relationships between objects when build a hierarchical tree/graph structure. The class uvm_component has a handle to its parent and handles to all its children so that you can traverse the hierarchical structure. This terminology is used in most programming languages and is independent of OOP.

You can create a hierarchical structure without nesting classes. In fact you can build a structure with just a single class type. Nesting of class definitions hides the name of a class within another class so that only the outer-class object can construct the inner class object.