Внутренне говоря, когда вы приводите объект к строго типизированному объекту, например:
User u = (User)o;
Где хранится тип объекта? хранится ли он в другом месте или в блоке памяти, где хранится фактический объект?
(я не знаю много об этой теме, поэтому я вполне мог бы задать вопрос, который не имеет полного смысла, но я надеюсь, что вы поняли его суть)