Назад к вопросам
Junior — Middle
62
В каком случае вызов метода clone() или подобного прототипа создаст новый экземпляр объекта?
Ответ от нейросети
sobes.tech AI
В Java метод clone() создаст новый экземпляр объекта, если класс реализует интерфейс Cloneable и переопределяет метод clone() из класса Object, вызывая super.clone(). В этом случае создаётся поверхностная копия объекта — новый объект с теми же значениями полей. Если clone() не переопределён или класс не реализует Cloneable, вызов приведёт к CloneNotSupportedException.
Пример:
class Person implements Cloneable {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone(); // создаёт новый экземпляр с копией полей
}
}
Таким образом, новый экземпляр создаётся при корректной реализации clone() с вызовом super.clone(). Если метод реализован иначе или не вызывается super.clone(), новый объект может не создаваться.