我很好奇为什么有些集合类扩展了抽象类,同时实现了相应的集合接口,如List、Set等?为什么不只扩展抽象类。我可以理解实现其他接口以添加 Cloneble、Serializable 等功能。但是扩展抽象类并实现已经抽象类实现的接口。我认为我缺少一些设计原则。请有人可以详细说明这个设计原因吗?
问问题
196 次
2 回答
3
集合接口的存在使得人们可以在不知道它实际上是什么类型的集合的情况下使用集合——即使它没有扩展任何抽象类。
例如,大多数并发集合不扩展抽象基类。
抽象类的存在是为了为大多数实现提供通用的基本功能。
于 2013-05-19T13:26:05.480 回答
0
Collection
接口定义了契约,并且包含了功能的AbstractCollection
“骨架实现”。
要了解更多信息,我建议您了解“按合同设计”和框架实现,最好在 Joshua Bloch 的Effective Java - 第 18 集中进行描述。
于 2013-05-19T13:29:36.793 回答