Хммм ... Я могу думать о двух вещах:
Возможно, у вас есть класс, который занимается определенными проблемами безопасности. Подклассифицируя его и передавая его системе подклассовую версию, злоумышленник может обойти ограничения безопасности. Например. Ваше приложение может поддерживать плагины, и если плагин может просто подклассить ваши классы, связанные с безопасностью, он может использовать этот трюк, чтобы каким-то образом перебросить его подклассовую версию на место. Однако Sun, скорее, имеет дело с апплетами и т. П., Может быть, это не совсем реалистичный случай.
Гораздо более реалистичным является избегать изменения объекта. Например. поскольку строки неизменяемы, ваш код может безопасно хранить ссылки на него
String blah = someOtherString;
вместо копирования строки в первую очередь. Однако, если вы можете создать подкласс String, вы можете добавить к нему методы, позволяющие изменять строковое значение, и теперь ни один код не может больше полагаться на то, что строка останется прежней, если просто скопирует строку, как указано выше, вместо этого она должна дублировать строка.