水滴石穿007 2022-03-25 14:51 采纳率: 0%
浏览 217

父接口实现 Serializable,子接口还要实现吗?

问题遇到的现象和发生背景

Flink 源码中的 Fucntion

问题相关代码,请勿粘贴截图

@Public
public interface Function extends java.io.Serializable {
}

@Public
@FunctionalInterface
public interface MapFunction<T, O> extends Function, Serializable { } // 此处还要显示实现 Serializable 吗?

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • _Onelone丶 2022-03-25 15:02
    关注

    父类实现了Serializable,子类不需要实现Serializable
    相关注意事项
    a)序列化时,只对对象的状态进行保存,而不管对象的方法;
    b)当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口;
    c)当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化;
    d)并非所有的对象都可以序列化,至于为什么不可以,有很多原因了,比如:
    1.安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如写到文件,对他们进行重新的资源分配,而且,也是没有必要这样实现。或者进行rmi传输等等,在序列化进行传输的过程中,这个对象的private等域是不受保护的。
    2. 资源分配方面的原因,比如socket,thread类,如果可以序列化,进行传输或者保存

    评论

报告相同问题?

问题事件

  • 创建了问题 3月25日