为什么这行Foo2 foo2=new Foo2();会报错啊?

来源:6-3 序列化中子父类构造函数问题

初级阶段

2018-02-12 15:40

package com.icc;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class ObjeectSer2 {

    public static void main(String[] args)throws Exception {
        // TODO Auto-generated method stub
        ObjectOutputStream oos=new ObjectOutputStream( new
                 FileOutputStream("demo/obj1.dat"));
        Foo2 foo2=new Foo2();
        oos.writeObject(foo2);
        oos.flush();
        oos.close();
        
    }

     /*
      * 一个类实现了序列化接口,那么其子类都可以进行序列化
      */
     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");
            }
        }
}

写回答 关注

1回答

  • 不再年轻需努力
    2018-02-13 10:55:41

    你将FOO类定义到了ObjeectSer2里面了,成为了内部类,放在类外面再试试

    不再年轻需努... 回复初级阶段

    把所有关于foo类的定义全部放在外面去

    2018-02-13 13:08:02

    共 2 条回复 >

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133812 学习 · 1058 问题

查看课程

相似问题