1) Class A{
string name;
long Id;
}
Class B extends A implements Serializable{
string dept;
}
2)Class A implements Serializable{
string name;
long Id;
}
Class B extends A{
string dept;
}
任何正文都可以解释,哪些对象参数将被序列化?
答案 0 :(得分:1)
你没有在这里序列化任何参数,无论如何所有这些变量都可以被序列化,如果你想要一个不被序列化的变量你必须将它声明为transient
答案 1 :(得分:0)
在第一个示例中,dept
字段将被序列化,但name
和id
字段不会。
在第二个示例中,所有三个字段都将被序列化。
Java Object Serialization规范的relevant section说明了这一点:
13)对象的内容被写入流中。
一个。如果对象是可序列化的,则定位最高的可序列化类。对于该类和每个派生类,将编写该类的字段。
请注意,当反序列化具有非可序列化超类的对象时,将为最低的非可序列化超类调用no-args构造函数。重构对象时,readObject()
方法调用no-args构造函数以初始化不可序列化的超类。通常,它无法将超类字段恢复为序列化之前的值。
另见this Q&A。