Почему Class.getClass () может отличаться от возвращаемого типа Class.cast ()?

Надеюсь, вы поможете мне в этом вопросе.

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

Допустим, у нас есть родительский класс и дочерний класс, который расширяет этот родительский класс. Итак, см. Ниже:

Parent v = new Child();

Если я сделаю v.getClass () , он вернет Child . Однако, если я сделаю v.getClass (). Cast () , он вернет объект из типа Parent .

Кто-нибудь знает, почему это происходит? Я также просмотрел документацию по Java API и не смог найти причину ...

Спасибо за любые мысли.

9
задан Dave Newton 27 October 2011 в 16:27
поделиться