我想知道,在你从一个实现某个接口的对象转换到那个特定的接口之后,参考内容会去哪里?这是一个例子:
MyClass mc = new MyClass();
MyClass实现了IIfc.所以,这是界面的转换:
IIfc ifc = (IIfc) mc;
Run Code Online (Sandbox Code Playgroud)
ifc保存的内容在哪里,我知道它在堆上,但是它是mc实例的一部分还是在某些其他内存地址中指向属于ifc的mc方法?
PS:我看到很多人没有得到这个问题.ifc指向的地址在哪里?它是在对象(mc)内还是在堆的其他位置?
该对象保持原样.参考文献也是如此.
这就是为什么你可以把它扔回去MyClass:
IIfc ifc = (IIfc) mc;
MyClass mc2 = (MyClass) ifc;
Run Code Online (Sandbox Code Playgroud)