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