Java 对象转换如何在幕后工作?
我一直想知道对象转换在Java中是如何工作的。我理解对于基元类型,它将更像二进制表示级别,但是Object呢?是有点像还是一切都将在运行时确定?例如: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;
我知道你没有必要铸造它,但如果你这样做呢?后端是否发生了任何重大事件?