Java 实现Serializable与扩展Serializable有什么区别?

Java 实现Serializable与扩展Serializable有什么区别?,java,serialization,jms,Java,Serialization,Jms,从JMS队列中读取对象消息时出错。它似乎是在对象序列化期间发生的 我进入了我们正在使用的域库,对象模型的根类被声明为“extends Serializable”,而不是“implements Serializable” 如果这两种方法有什么不同,我通常只见过“implements Serializable”变体。这是否会产生副作用,导致我们看到的问题?extends是为接口保留的。只有一个接口可以从多个接口扩展。类(包括抽象)将只实现接口。因为是一个接口,只有另一个接口可以扩展它。所有希望使用接

从JMS队列中读取对象消息时出错。它似乎是在对象序列化期间发生的

我进入了我们正在使用的域库,对象模型的根类被声明为“extends Serializable”,而不是“implements Serializable”


如果这两种方法有什么不同,我通常只见过“implements Serializable”变体。这是否会产生副作用,导致我们看到的问题?

extends
是为接口保留的。只有一个接口可以从多个接口扩展。类(包括抽象)将只实现接口。

因为是一个接口,只有另一个接口可以扩展它。所有希望使用接口的具体类都必须实现它。

因此,如果我在没有显式实现Serializable的子类上看到JMS错误,这可能是由于对象层次结构中的这种怪癖造成的吗?他们也从不声明唯一的可序列化id…@MichaelReynolds对象层次结构中有什么怪癖?如果您的类不可序列化,那么如果您尝试序列化它们,就会出现错误。如果你试图扩展一个类中的接口,你会得到一个编译器错误。我们有一个外部库。。。这样说:类A扩展可序列化类B扩展类A我们正在将类B放入JMS队列。@MichaelReynolds
类A扩展可序列化类
将出现编译器错误。这是HL7数据的HAPI库,我现在在源代码中,有一个嵌套的对象结构,但这就是对象继承自的根接口:public interface structure扩展Serializable的方式