如果我有3个班级说A和It Implements java.io.Serializable。我有B,它是A的子类。如果我想序列化B,B也实现了java.io.Serializable。如果不是为什么HttpServlet实现了java.io.Serializable,因为GenericServlet已经实现了它。请澄清一下。
先谢谢 拉吉
答案 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. *)。从技术上讲,使用通配符没有错(除非存在冲突的类名),但导入具有完全限定类名的类更清晰,