有效的 java 鼓励使用接口而不是抽象/具体类。问题是是否存在接口层次结构,应该选择哪种接口类型以及为什么?
例如,一个ArrayList实现List哪个实现Collection哪个实现Iterable。那么我们什么时候通过 a listvs collectionvs iterable?
显而易见的答案是每个子类都在不断添加更多功能。那么我们是否应该继续向上爬,直到匹配所需的功能?我的意思是,如果只需要在一个虚构的应用程序iterator()中,那么使用Iterableelse 使用List?