Назад к вопросам
Junior — Middle
65
Для чего служит метод clone() в базовом классе Object?
Ответ от нейросети
sobes.tech AI
Метод 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() нужно переопределить, чтобы копировать вложенные объекты.