AbstractCollection实现Collection。那么为什么AbstractCollection在那里,为什么我们使用Collection而不是直接使用AbstractCollection

最佳答案

也许回答有点晚了,但是以防万一我想回答这个问题。

使用

  • AbstractCollection是因为所有子集合都共享某些功能(如Krzysztof所说的),并且由于该功能是通用的(完全相同的代码行),因此我们可以使用继承来重新使用该代码,并使设计更简洁,更易于理解和使用。更易于维护。
  • 我们使用该接口(interface),因为接口(interface)定义了实现该接口(interface)的每个类都必须提供的“契约(Contract)”,即子类必须具有的方法。这个问题类似于,为什么我们不能使用ArrayList而不是List来做到这一点,但是您有90%的时间会对添加/设置,删除和知道ArrayList的大小以及List接口(interface)感兴趣。您会发现,在新的地方编写的所有内容都将实现此方法(及其他方法),因此您可以调用它们,而多态性将完成工作。另外,使用接口(interface)作为引用可以使您更改具体实现的类型,而无需进行任何更改(仅更改新调用),还可以使用特定的类引用在运行时更改特定的类型。引用,仅此而已。
  • 关于java - AbstractCollection的目的是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26319130/

    10-12 04:00