Я знаю, что кастинг действительно может быть сделан только от подкласса к суперклассу (up casting), но этот пример иллюстрирует то, что я хотел бы сделать.
Class Super {}
Class Sub extends Super {}
Super super = new Super();
Sub sub = (Sub)super;
Я считаю, что это называется "down" литье, которое не разрешено так...
Каков наилучший способ создания объекта типа Sub, заданного объектом типа Super.
EDIT:
Что вопрос - Какой лучший способ превратить Animal в Cat.
Ответ? Начните с животного базового типа и скопируйте атрибуты кошке. Добавьте мех и хвост и т.д. В принципе создатель копии. Правильный ответ (или хороший ответ)?
ДРУГОЙ РЕДАКТИРОВАНИЕ:
Я думаю, что мой вопрос довольно ясен, но, возможно, он слишком общий. Просить "лучший" способ сделать что-то имеет тенденцию давать много разных ответов. Я понимаю, что лучший способ может быть другим в разных обстоятельствах.
Я не ищу учебник по основам Java или OO. Просто ловля мнениями, поэтому я могу решить эту проблему, поскольку я изложил ее, используя лучшие практики.