Иногда необходимо получить копию объекта, которая не зависела
бы от оригинала. С которой можно было бы производить манипуляции, при этом, не
изменяя оригинал. При обыкновенном присваивание объектов (obj1 = obj2;) передаются ссылки на объект. В
итоге два экземпляра ссылаются на один объект, и изменение одного приведет к
изменению другого. Как мы видим это не то, что нам нужно. И в данном случае,
нам на помощь придет интерфейс Cloneable
и метод clone() класса Object.