次の質問 (Sierra Bates SCJP ガイド) に対する答えはpcpです。
import java.io.*;
class Player {
Player() { System.out.print("p"); }
}
class CardPlayer extends Player implements Serializable {
CardPlayer() { System.out.print("c"); }
public static void main(String[] args) {
CardPlayer c1 = new CardPlayer();
try {
FileOutputStream fos = new FileOutputStream("play.txt");
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(c1);
os.close();
FileInputStream fis = new FileInputStream("play.txt");
ObjectInputStream is = new ObjectInputStream(fis);
CardPlayer c2 = (CardPlayer) is.readObject();
is.close();
} catch (Exception x ) { }
}
}
したがって、次のように pcp を取得します。
「pc」は、Cardplayer のシリアル化された状態 (継承された p および Cardplayer の c) として出力されます。出力の 3 番目の p は、スーパークラスの Player コンストラクターが実行された結果です (シリアル化できないため、p を出力しています)。
これが答えの導き方ですよね?