Java でオブジェクト キャスティングがどのように機能するのか、常に疑問に思っています。プリミティブ型の場合、バイナリ表現レベルのほうが似ていることは理解していますが、オブジェクトはどうですか? 実行時にすべてが決定されるようなものですPolymorphism
かdynamic binding
?例えば:
class Parent{
void A(){}
}
class Child extends Parent{
@Override
void A(){}
}
Parent p = new Parent();
Child c = (Child) p;
これは舞台裏でどのように機能しますか? の新しいインスタンスを作成しますChild
か? また、キャストしようとするとどうなりますか:
Child b = (Child) new Object();
最後に、プリミティブをラッパー クラスにキャストする場合:
Double d = (Double) 3.3;
キャストする必要がないことはわかっていますが、キャストした場合はどうなりますか? バックエンドで重要なことはありますか?