可序列化类的子类需要可序列化吗?

时间:2011-09-22 10:57:52

标签: java servlets

如果我有3个班级说A和It Implements java.io.Serializable。我有B,它是A的子类。如果我想序列化B,B也实现了java.io.Serializable。如果不是为什么HttpServlet实现了java.io.Serializable,因为GenericServlet已经实现了它。请澄清一下。

先谢谢 拉吉

4 个答案:

答案 0 :(得分:6)

来自Java docs

  

可序列化类的所有子类型本身都是可序列化的。

答案 1 :(得分:3)

从技术上讲,没有必要。

请注意,Serializable只是一个标记界面。因此,通过明确地实现它,您基本上说(标记)您知道Serializable限制/合同并相应地进行设计。

答案 2 :(得分:0)

据我所知,它不需要实现java.io.Serializable。也许这只是为了清晰起见而做的。

答案 3 :(得分:0)

正如其他人所指出的那样,它没有任何技术含义(HttpServlet实施java.io.Serializable)。从清晰度的角度来看,它更容易让开发人员快速查看此类是否可序列化。它围绕着JDK。查看java.lang.Number及其子类。

它类似于导入包的最佳实践,其中我们应该避免使用通配符(java.io. *)。从技术上讲,使用通配符没有错(除非存在冲突的类名),但导入具有完全限定类名的类更清晰,