13. Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?

13. Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?

UNKNOWN

чтобы создать через клон новый объект – через интерфейс.

Метод clone() объявлен в классе Object с указанием модификатора native, чтобы обеспечить доступ к стандартному механизму поверхностного копирования объектов.

Одновременно он объявлен и как protected, чтобы нельзя было вызвать этот метод у не переопределивших его объектов. Непосредственно интерфейс Cloneable является маркерным (не содержит объявлений методов) и нужен только для обозначения самого факта, что данный объект готов к тому, чтобы быть клонированным. Вызов переопределённого метода clone() у не Cloneable объекта вызовет выбрасывание CloneNotSupportedException.


Предыдущий вопрос: 12. Какой способ клонирования предпочтительней?

Следующий вопрос: 14. Как создать глубокую копию объекта? (2 способа)

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку: напишите мне

Report Page