为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Java中的许多Collection类都会扩展抽象类并实现接口?

为什么Java中的许多Collection类都会扩展抽象类并实现接口?

慕田峪4524236 2019-10-21 09:21:13
为什么Java中的许多Collection类都扩展Abstract类并实现接口(也由给定的Abstract类实现)?例如,class HashSet扩展了AbstractSet并且也实现了Set,但是AbstractSet已经实现了Set。
查看完整描述

3 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

这是记住此类真正实现该接口的一种方式。
它不会有任何不良影响,并且可以帮助您理解代码,而无需遍历给定类的完整层次结构。

查看完整回答
反对 回复 2019-10-21
?
达令说

TA贡献1821条经验 获得超6个赞

从类型系统的角度来看,如果类没有再次实现该接口,它们将没有任何不同,因为抽象基类已经实现了它们。


那是真的。


他们仍然实现它的原因主要是(可能是)文档:HashSetis -a Set。implements Set尽管并不一定要这样做,但最后要明确指出这一点。


请注意,使用反射实际上可以观察到这种差异,但是如果HashSet不Set直接实现,我将很难产生一些会中断的代码。


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 395 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信