将派生类转换为父类时,是否会丢失数据?

例如

public class parentClass{ //stuff done } public class derivedClass extends parentClass{ // has data that parentClass does not } // some function public parentClass foo(parentClass myVar){ return myVar } // ... later ... { ... derivedClass dClass1 = new derivedClass(); parentClass pClass = foo(dClass1); derivedClass dClass2 = (derivedClass)pClass; ... } 

数据在dClass1和dClass2之间丢失了吗? 我不确定,我认为答案是否定的。 我知道如果我使用双打和整数然后数据丢失,但这不是使用指针和对象,所以我不确定。

你不能投射物体,所以你不能丢失数据。 您所能做的就是将引用转换为对象,这不会以任何方式改变它。