Jak działa rzutowanie obiektów Java za sceną? [duplikować]
Możliwy duplikat:
Jak działa operator obsady Java?
Implementacja castingu Java
Zawsze zastanawiam się, jak działa rzutowanie obiektów w Javie. Rozumiem, że dla typu prymitywnego będzie on bardziej podobny do poziomu reprezentacji binarnej, ale co z obiektem? Czy to trochę takPolymorphism
lubdynamic binding
w tym wszystko zostanie ustalone w czasie wykonywania? Na przykład:
class Parent{
void A(){}
}
class Child extends Parent{
@Override
void A(){}
}
Parent p = new Parent();
Child c = (Child) p;
Jak to działa za sceną? Czy tworzy nową instancjęChild
? A także, co się stanie, jeśli spróbujesz rzucić:
Child b = (Child) new Object();
I ostatni, gdy rzucasz prymityw na klasę opakowania:
Double d = (Double) 3.3;
Wiem, że nie musisz go rzucać, ale co jeśli? Czy jest coś znaczącego, co dzieje się na zapleczu?