例えば
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 の間でデータが失われましたか? よくわかりませんが、答えはノーだと思います。double と int を使用していた場合、データが失われることはわかっていますが、それはポインターとオブジェクトを使用していないため、確信が持てませんでした。