В «Эффективной Java» (глава 7) говорится
Также обратите внимание, что мы не использовали метод клонирования Дейта для создания защитных копий. Поскольку Date не является окончательным, метод clone не гарантирует возврат объекта класса java.util.Date: он может возвращать экземпляр ненадежного подкласса, специально предназначенного для злонамеренных действий. Такой подкласс может, например, записывать ссылку на каждый экземпляр в частный статический список во время его создания и разрешать злоумышленнику доступ к этому списку. Это дало бы злоумышленнику полную свободу действий во всех случаях. Чтобы предотвратить такого рода атаки, не используйте метод клонирования для создания защитной копии параметра, тип которого является подклассом для недоверенных сторон.
Я не совсем понимаю его объяснение. Почему clone() не возвращает объект Date? Как экземпляр может быть ненадежным подклассом?