Я наткнулся на некоторый код класса, который реализует Clonable
, в документации говорится:
Класс реализует интерфейс Cloneable, чтобы указать методу Object.clone(), что для этого метода допустимо делать копию поля для поля экземпляров этого класса. Вызов метода клонирования объекта в экземпляре, который не реализует интерфейс Cloneable, приводит к исключению CloneNotSupportedException. По соглашению классы, которые реализуют этот интерфейс, должны переопределить Object.clone (который защищен) с помощью открытого метода. Смотрите Object.clone() для подробностей о переопределении этого метода. Обратите внимание, что этот интерфейс не содержит метод клонирования. Следовательно, невозможно клонировать объект только в силу того факта, что он реализует этот интерфейс. Даже если метод клона вызывается рефлексивно, нет никаких гарантий, что он будет успешным.
Я не могу понять смысл в реализации этого класса, как сказано в документации, метод .clone
не реализован в интерфейсе, и я должен реализовать его. Так зачем использовать этот класс? Почему я не могу просто написать метод copyClass
в своем классе, чтобы сделать копию объекта без реализации этого класса?