這篇文章主要介紹Java序列化中子類、父類構(gòu)造函數(shù)的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來(lái)巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),成都創(chuàng)新互聯(lián)公司面向各種領(lǐng)域:成都生料攪拌車等成都網(wǎng)站設(shè)計(jì)、成都全網(wǎng)營(yíng)銷推廣解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。
具體如下:
一 介紹
1、如果父類實(shí)現(xiàn)了序列化接口,子類就不需要實(shí)現(xiàn)序列化接口。
2、創(chuàng)建對(duì)象的時(shí)候,遞歸調(diào)用了父類的構(gòu)造函數(shù)。
3、對(duì)子類對(duì)象進(jìn)行反序列化操作時(shí),如果其父類沒(méi)有實(shí)現(xiàn)序列化接口,那么其父類的構(gòu)造函數(shù)會(huì)被調(diào)用,否則不會(huì)被調(diào)用。
二 實(shí)例
package com.imooc.io; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class ObjectSeriaDemo2 { public static void main(String[] args) throws Exception{ ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream("demo/obj1.dat")); Foo2 foo1 = new Foo2(); //創(chuàng)建對(duì)象的時(shí)候,遞歸調(diào)用了父類的構(gòu)造函數(shù) oos.writeObject(foo1); oos.flush(); oos.close(); //反序列化是否遞歸調(diào)用父類的構(gòu)造函數(shù),不能證明 ObjectInputStream ois = new ObjectInputStream( new FileInputStream("demo/obj1.dat")); Foo2 foo2 = (Foo2)ois.readObject(); System.out.println(foo2); ois.close(); ObjectOutputStream oos1 = new ObjectOutputStream( new FileOutputStream("demo/obj1.dat")); Bar2 bar1 = new Bar2(); oos1.writeObject(bar1); oos1.flush(); oos1.close(); ObjectInputStream ois1 = new ObjectInputStream( new FileInputStream("demo/obj1.dat")); Bar2 bar2 = (Bar2)ois1.readObject(); System.out.println(bar2); ois1.close(); /* * 對(duì)子類對(duì)象進(jìn)行反序列化操作時(shí), * 如果其父類沒(méi)有實(shí)現(xiàn)序列化接口 * 那么其父類的構(gòu)造函數(shù)會(huì)被調(diào)用 */ } } /* * 一個(gè)類實(shí)現(xiàn)了序列化接口,那么其子類都可以進(jìn)行序列化 */ class Foo implements Serializable{ public Foo(){ System.out.println("foo..."); } } class Foo1 extends Foo{ public Foo1(){ System.out.println("foo1..."); } } class Foo2 extends Foo1{ public Foo2(){ System.out.println("foo2..."); } } class Bar{ public Bar(){ System.out.println("bar"); } } class Bar1 extends Bar{ public Bar1(){ System.out.println("bar1.."); } } class Bar2 extends Bar1 implements Serializable{ public Bar2(){ System.out.println("bar2..."); } }
三 運(yùn)行結(jié)果
foo...
foo1...
foo2...
com.imooc.io.Foo2@913fe2
bar
bar1..
bar2...
bar
bar1..
com.imooc.io.Bar2@eb7859
以上是“Java序列化中子類、父類構(gòu)造函數(shù)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!