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

njf*_*ife 5 java

例如

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;
 ...
}
Run Code Online (Sandbox Code Playgroud)

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

Pet*_*rey 5

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