Java 集合 : Interfaces and Abstract classes

标签 java collections

所有集合实现接口(interface) Collection ,这些集合具有特定的抽象层次结构,例如

但是也有类似Collection这样的对应接口(interface), List , Set .这些界面在我看来有点多余。

他们为什么在这里?这只是约定,还是有理由只实现接口(interface)而不扩展抽象类。

最佳答案

接口(interface)之所以存在,是因为能够在不强加实现的情况下将类型分配给变量或参数是件好事。

例如,如果我创建一个持久化实体以在 Hibernate 中使用,并且它有一个集合,我想为其分配一种 List 或 Set 类型。 Hibernate 将用它自己的列表替换我初始化它的任何列表,以及一些特定于 Hibernate 的执行延迟加载的实现或它需要的任何其他内容。 Hibernate 开发人员可能不希望受到必须扩展抽象类的限制。

抽象类的存在是为了方便实现者。该接口(interface)是客户端使用的合约。

关于Java 集合 : Interfaces and Abstract classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14730830/

相关文章:

java - API java 5 及更多 : should I return an array or a Collection?

java - Swing 中 setVisible() 方法的含义

java - Google App Engine 退回通知不起作用

java - 如何使用当前上下文 JPA、JSF、Java 集合删除项目集合

c# - LINQ:查询集合中的集合

java - 如何将动态字符串值传递给方法?

java - 我可以使用 pack() 仅调整框架的高度吗?

java - Android登录远程MySQL数据库鉴权

java - Java中哪种Map数据结构可以最有效地获取最高元素?

java - 使用嵌套在另一个类中的类中定义的比较器来实现 Collections.sort