Привести объект суперкласса к приведение подкласса вниз

Я знаю, что преобразование действительно может быть выполнено только из подкласса в суперкласс (преобразование вверх), но этот пример иллюстрирует то, что я хотел бы сделать.

Class Super {}
Class Sub extends Super {}

Super super = new Super();
Sub sub = (Sub)super;

Я считаю, что это называется приведением вниз, что недопустимо, поэтому ...

Каков наилучший способ создать объект типа Sub для объекта типа Super.

РЕДАКТИРОВАТЬ:

Вот вопрос - как лучше всего превратить животное в кошку.

Ответ? Начните с животного базового типа и скопируйте атрибуты кошке. Добавляем мех, хвост и т. Д. В основном конструктор копирования.Это правильный ответ (или хороший ответ)?

ДРУГОЙ РЕДАКТИРОВАНИЕ:

Я думаю, что мой вопрос довольно ясен, но, возможно, он слишком общий. На вопрос о «лучшем» способе что-то обычно дают разные ответы. Я понимаю, что лучший способ может отличаться в разных обстоятельствах.

Мне не нужен учебник по основам Java или объектно-ориентированного программирования. Просто ловлю мнения, чтобы решить эту проблему, как я изложил ее, используя лучшие практики.

12
задан Matthew 6 January 2012 в 13:24
поделиться