以下问题(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。输出中的第三个 p 是超类 Player 构造函数运行的结果——因为它不可序列化——打印 p。
答案是这样得出的,不是吗?