首页 > 代码库 > java学习笔记_序列化
java学习笔记_序列化
如果父类没有实现Serializable接口,子类实现了Serializable接口,那么子类是可以序列化的。
但是如果想要反序列化,那么就需要父类支持默认构造函数。
因为在反序列化的过程中不会调用子类的构造函数,而会以不带参数的形式调用父类的构造函数。
1 public class dog { 2 public dog(String n) { name = n; } 3 public dog() { name = ""; } 4 public String name; 5 }
1 import java.io.*; 2 3 public class snoopy extends dog implements Serializable { 4 public int age; 5 public snoopy(String n, int a) { 6 super(n); 7 System.out.println("Constr..."); 8 System.out.println(n); 9 if ("" == n) { 10 System.out.println("empty"); 11 } 12 age = a; 13 } 14 15 public static void main(String[] args) { 16 snoopy sn = new snoopy("Snoopy", 5); 17 18 try { 19 FileOutputStream fs = new FileOutputStream("snoopy.ser"); 20 ObjectOutputStream os = new ObjectOutputStream(fs); 21 os.writeObject(sn); 22 os.close(); 23 24 ObjectInputStream is = new ObjectInputStream(new FileInputStream("snoopy.ser")); 25 System.out.println("Begin---"); 26 snoopy s = (snoopy) is.readObject(); 27 28 } catch(Exception ex) { 29 ex.printStackTrace(); 30 } 31 } 32 }
java学习笔记_序列化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。