Кроме, конечно, их использования с примитивами. Большинство (если не все) реализаций, которые я вижу, полезны только с точки зрения программиста.
ИЗМЕНИТЬ: я понимаю, что должен переопределить поведение по умолчанию, поэтому я упомянул реализации :). И я действительно могу переопределить его в некоторых компонентах, требующих представления String внутри графического интерфейса. Однако, по крайней мере, в JDK, я вижу множество реализаций, которые используются только тогда, когда вам нужно отлаживать экземпляры объектов.
Почему он основан на классе Object, поскольку он полезен только для графического интерфейса пользователя / отладки? есть ли другие способы использования, о которых я не знаю?