AbstractCollection
实现了 Collection
。那么为什么 AbstractCollection
在那里,为什么我们使用 Collection
而不是直接使用 AbstractCollection
?
最佳答案
也许现在回答有点晚了,但以防万一我想回答这个问题。
AbstractCollection
之所以被使用,是因为正如 Krzysztof 所说,所有子集合都共享一些共同的功能,并且由于此功能是通用的(完全相同的代码行),我们可以使用继承来重新组合代码并使设计更简洁、更易于理解和更易于维护。我们使用接口(interface)是因为接口(interface)定义了每个实现该接口(interface)的类必须提供的“契约”,即子类必须具有的方法。这个问题类似于,为什么我们不能使用
ArrayList
而不是 List,你可以这样做,但是 90% 的时候你会对添加/设置、删除和知道大小感兴趣ArrayList
和List
接口(interface)向您保证,在新的某处之后编写的任何内容都将实现此方法(和其他方法),因此您可以调用它们,多态性将完成工作.此外,使用接口(interface)作为引用允许您更改具体实现的类型而不更改任何内容(仅新调用)并且还允许您在运行时更改特定类型,使用您限制自己的特定类引用仅供引用。
关于java - AbstractCollection 的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26319130/