* In the deep copy, we create a clone which is independent of original object and making changes in the cloned object should not affect original object.
* So for deep copy we need to ensure all the member class also implement the Cloneable interface and override the clone() method of the object class.