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

为什么Java中的许多Collection类都扩展Abstract类并实现接口(也由给定的Abstract类实现)?


例如,class HashSet扩展了AbstractSet并且也实现了Set,但是AbstractSet已经实现了Set。


慕田峪4524236
浏览 396回答 3
3回答

ITMISS

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

达令说

从类型系统的角度来看,如果类没有再次实现该接口,它们将没有任何不同,因为抽象基类已经实现了它们。那是真的。他们仍然实现它的原因主要是(可能是)文档:HashSetis -a Set。implements Set尽管并不一定要这样做,但最后要明确指出这一点。请注意,使用反射实际上可以观察到这种差异,但是如果HashSet不Set直接实现,我将很难产生一些会中断的代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java