//He entered into the Praetorium again, and said to Jesus, "Where are you from?" But Jesus gave him no answer (John 19:9) package com.javarush.task.task20.task2018; import java.io.Serializable; import java.io.*; /* ÐайÑи оÑибки */ public class Solution { public static class A { protected String name = "A"; public A(String name) { this.name += name; } } public class B extends A implements Serializable { public B(String name) { super(name); this.name += name; } public void writeObject(ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeObject(name); } public void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); this.name = (String) in.readObject(); } } public static void main(String[] args) throws IOException, ClassNotFoundException { ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(arrayOutputStream); Solution solution = new Solution(); B b = solution.new B("B2"); System.out.println(b.name); oos.writeObject(b); ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(arrayOutputStream.toByteArray()); ObjectInputStream ois = new ObjectInputStream(arrayInputStream); B b1 = (B)ois.readObject(); System.out.println(b1.name); } } /* ÐеÑеÑиализаÑÐ¸Ñ Ðа Ð²Ñ Ð¾Ð´ подаеÑÑÑ Ð¿Ð¾Ñок, в коÑоÑÑй запиÑан ÑеÑиализованнÑй обÑÐµÐºÑ ÐºÐ»Ð°ÑÑа A либо клаÑÑа B. ÐеÑеÑиализÑй обÑÐµÐºÑ Ð² меÑоде getOriginalObject Ñак, ÑÑÐ¾Ð±Ñ Ð² ÑлÑÑае Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ Ð±Ñло вÑведено ÑообÑение на ÑкÑан и возвÑаÑен null. РеализÑй инÑеÑÑÐµÐ¹Ñ Serializable где Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾. ТÑебованиÑ: 1.âÐлаÑÑ B должен бÑÑÑ Ð¿Ð¾Ñомком клаÑÑа A. 2.âÐлаÑÑ A должен поддеÑживаÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Serializable. 3.âÐлаÑÑ B не должен Ñвно поддеÑживаÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Serializable. 4.âÐеÑод getOriginalObject должен возвÑаÑаÑÑ Ð¾Ð±ÑÐµÐºÑ Ñипа A полÑÑеннÑй из поÑока ObjectInputStream. 5.âÐеÑод getOriginalObject должен возвÑаÑаÑÑ null, еÑли пÑи попÑÑке деÑеÑиализаÑии не бÑл полÑÑен обÑÐµÐºÑ Ñипа A. 6.âÐеÑод getOriginalObject должен возвÑаÑаÑÑ null, еÑли пÑи попÑÑке деÑеÑиализаÑии возникло иÑклÑÑение. package com.javarush.task.task20.task2017; import java.io.ObjectInputStream; * ÐеÑеÑиализаÑÐ¸Ñ * public class Solution { public A getOriginalObject(ObjectInputStream objectStream) { return null; } public class A { } public class B extends A { public B() { System.out.println("inside B"); } } public static void main(String[] args) { } } */