可能重复:
Java强制转换操作符如何工作?
Java强制实现
我总是想知道如何使用Java进行对象转换.我理解原始类型它会更像二进制表示级别,但是对象呢?有点像Polymorphism
或者dynamic binding
在某种程度上会在运行时确定一切吗?例如:
class Parent{
void A(){}
}
class Child extends Parent{
@Override
void A(){}
}
Parent p = new Parent();
Child c = (Child) p;
Run Code Online (Sandbox Code Playgroud)
这是如何在幕后工作的?它是否创建了一个新实例Child
?而且,如果你试图施放会发生什么:
Child b = (Child) new Object();
Run Code Online (Sandbox Code Playgroud)
最后一个,在将一个原语转换为包装类时:
Double d = (Double) 3.3;
Run Code Online (Sandbox Code Playgroud)
我知道你没有必要施展它,但如果你这样做呢?在后端发生了什么重大事件?
我试图在Java中调试涉及ClassCastException的问题.为了解决这个问题,我需要知道当我从Object转换为特定类型时会发生什么.任何人都可以向我解释Java转换运算符如何在Java级别和JVM级别上运行?