Deep copy and shallow copy

Can anyone please explain the difference between deep copy and shallow copy in SV?

Usually we hear this term while dealing with class objects in SV.

When you do shallow copy all properties of the class will be duplicated(all properties are copied to new memory locations) in new memory except for objects. Shallow copy copies only the object handles.

Whereas when you do deep copy all properties including objects are duplicated.

In reply to Naven8:

Thanks Naven

In reply to Naven8:

can you explain with an example ?

In reply to coovivek:
I explain this with an example in the first session of my SystemVerilog OOP for UVM verification class