Como a conversão de objeto Java funciona atrás da cena? [duplicado]

Duplicata Possível:
Como o operador de conversão de Java funciona?
Implementação de Java casting

Eu sempre me pergunto como o casting de objetos funciona em Java. Eu entendo que para o tipo primitivo será mais parecido com o nível de representação binária, mas e quanto ao Object? É como se fossePolymorphism oudynamic binding em que tudo será determinado em tempo de execução? Por exemplo:

class Parent{
     void A(){}
}
class Child extends Parent{
     @Override
     void A(){}
}

Parent p = new Parent();
Child c = (Child) p;

Como isso funciona nos bastidores? Cria uma nova instância deChild? E também, o que acontece se você tentar transmitir:

Child b = (Child) new Object();

E por último, ao lançar um primitivo para uma classe wrapper:

Double d = (Double) 3.3;

Eu sei que você não precisa necessariamente para lançá-lo, mas e se você fizer isso? Existe alguma coisa significativa que aconteça no backend?

questionAnswers(5)

yourAnswerToTheQuestion