请有人能解释一下为什么反序列化后调用“Gambler”类的构造函数,但说“Player”类的构造函数不是?
import java.io.*;
class Gambler {
Gambler() { System.out.print("d"); }
}
class Person extends Gambler implements Serializable {
Person() { System.out.print("c"); }
}
class Player extends Person {
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 ) { }
}
}