Junior — Middle
107
À quoi sert la méthode clone() dans la classe de base Object?
Réponse de l'IA
sobes.tech IA
Метод clone() в классе Object служит для создания копии объекта. По умолчанию он выполняет поверхностное копирование (shallow copy), то есть копирует значения полей объекта, но если поля — ссылки на другие объекты, копируются только ссылки, а не сами объекты.
Чтобы использовать clone(), класс должен реализовать интерфейс Cloneable, иначе при вызове будет выброшено исключение CloneNotSupportedException.
Пример использования:
public class Person implements Cloneable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
// Использование:
Person p1 = new Person("Иван", 30);
Person p2 = (Person) p1.clone();
Если нужно глубокое копирование (deep copy), то метод clone() нужно переопределить, чтобы копировать вложенные объекты.