Java编程中带有继承的对象序列化
序列化是将对象的状态更改为字节流的过程,以便字节流可以返回到对象的副本中
在Java中,如果对象的类或父类实现了Serializable接口或Externalizable接口,则称该对象可序列化。
反序列化将序列化的对象转换回该对象的副本。
有继承的对象序列化有三种情况。
如果父类可序列化,则子类可自动序列化
即使父类不可序列化,子类仍可以序列化
如果我们希望子类不被序列化,即使父类是可序列化的
让我们看一个示例,其中父类可序列化时,子类自动变为可序列化-
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.NotSerializableException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Parent implements Serializable {
int i = 33;
}
class Child extends Parent {
int j = 21;
}
public class Example {
public static void main(String[] args) throws IOException, ClassNotFoundException {
Child writer = new Child();
FileOutputStream fos = new FileOutputStream("file.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(writer);
FileInputStream fis = new FileInputStream("file.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
Child reader = (Child)ois.readObject();
System.out.println(reader.i+","+reader.j);
}
}输出
33,21
热门推荐
1 送米的祝福语简短
4 七十年祝福语简短
10 妹妹生日祝福语简短好看
11 艾伦老师祝福语简短
12 英文关于生日祝福语简短
13 奶奶的生日简短祝福语
14 元旦祝福语的英文简短
15 用名字做祝福语简短
16 圣诞祝福语简短贺卡英文
17 巧克力情侣祝福语大全简短
18 蛋糕开学祝福语 简短独特