集合类-java中为什么不直接用Collection接口,而是还要再造一个他们相应的抽象类?

问题描述

java中为什么不直接用Collection接口,而是还要再造一个他们相应的抽象类?

诸如HashMap、ArrayList等具体类,都是直接继承自AbstractMap或AbstractList,为什么要设置这么个抽象类,而不直接用相应的接口?
还有这些抽象类为什么单单空着size和iterator两个方法不去实现?

解决方案

抽象类可以添加公共方法,一些可以写的代码可以先写好,接口没办法写方法。

解决方案二:

public interface Collection extends Iterable
这是接口,没有任何的实现,也不能扩充,需要你自己再次继承,以扩充满足自己需要的类

解决方案三:

如果是接口那你要把接口里所有的方法都实现,即使是空实现。但是有时候并不需要用所有的方法,所以用抽象类,只重载你需呀用的方法,这样代码能简洁一点。

时间: 2024-09-20 21:05:21

集合类-java中为什么不直接用Collection接口,而是还要再造一个他们相应的抽象类?的相关文章

java语法-java中如何在其他方法的方法体里面初始化一个非静态public方法

问题描述 java中如何在其他方法的方法体里面初始化一个非静态public方法 java中如何在其他方法的方法体里面初始化一个非静态public方法 如何判断一个方法是不是静态方法, 解决方案 方法里面弄方法,,那是匿名类用的,,除此之外一般没这么用

java字符串-java中如何理解字符的长度减去一等于最后一个字符的索引

问题描述 java中如何理解字符的长度减去一等于最后一个字符的索引 java中如何理解字符的长度减去一等于最后一个字符的索引 字符的索引是什么意思 解决方案 说的是String里面的private final char value[];吗?value[value.length-1]不就是最后一个字符吗? 解决方案二: 从0开始,自然长度减1是最后 解决方案三: 字符串下标是从零开始,长度是从一计数,所以长度减一就是最后一位的下标 解决方案四: 里面有什么深意嘛?起始数字和习惯有差别

为什么说java中private内部类上转型为接口后可以隐藏内部类的实现?

问题描述 为什么说java中private内部类上转型为接口后可以隐藏内部类的实现? 学习java中 看到类的高级特性关于内部成员类这一章 出现这么一句话把我拦住鸟 读不太明白 还请大神解释一下 解决方案 1.private的内部类,只有他的外部类才能使用,并且只能使用生成对象, 2.如果你在这个外部类直接让这个private内部类上转型为接口,你在外面使用这个外部类的时候只能使用这个接口提供的功能了.

浅析Java中的set集合类型及其接口的用法_java

概念首先,我们看看Set集合. (01) Set 是继承于Collection的接口.它是一个不允许有重复元素的集合. (02) AbstractSet 是一个抽象类,它继承于AbstractCollection,AbstractCollection实现了Set中的绝大部分函数,为Set的实现类提供了便利. (03) HastSet 和 TreeSet 是Set的两个实现类.     HashSet依赖于HashMap,它实际上是通过HashMap实现的.HashSet中的元素是无序的.    

Java中的深克隆和浅克隆——Cloneable接口

一.没有使用克隆带来的问题 public class CloneTest {static Student s = new Student("aaa", 20); // 直接赋值带来的问题public static void noclone(){// 传的是引用的副本,改变了noCloneStudent也改变了sStudent noCloneStudent = new Student();noCloneStudent = s;noCloneStudent.setName("bb

java中并不是任意多个接口都可以实现多实现

interface A{    public abstract void show(); }   interface B{    public abstract int show(); }   public class Test implements A, B{    public void show(){        System.out.println("A show!");    }    /*         只写 void show()出现的问题:         Test

面向对象编程:Java中的抽象数据类型_Java编程

文章来源:互联网 作者:PaleSting/CSDN 在本文中,我们将考察Java中的数据类型,但是我们将介绍抽象数据类型(ADT)的概念.我们还将通过介绍Java Collections Framework(Java 集合架构)来学习Java定义的一些ADT. ADT 一个ADT是一个仅由保存的数据类型和可能在这个数据类型上进行的操作定义的.开发者们只能通过ADT的操作方法来访问ADT的属性,而且他们不会知道这个数据类型内部各种操作是如何实现的. 在Java中,我们常常使用一个接口来给出一个操

深入剖析java中的集合框架_java

解析:如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,那么可以使用Java集合框架. 如果启用集合的删除方法,那么集合中所有元素的索引会自动维护. 集合完全弥补了数组的缺陷. 02.集合框架的内容  集合框架都包含三大块内容:对外的接口,接口的实现和对集合运算的算法  01.接口:表示集合的抽象数据类型  02.实现:集合框架中接口的具体实现  03.算法:在一个实现了某个集合框架的接口的对象身上完成某种有用的计算方法 java集合框架简图:    01.Collection接

Java中的策略模式实例教程

策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把算法策略作为它的一个参数.使用这种模式最好的例子是Collection.sort()方法了,它使用Comparator对象作为参数.根据Comparator接口不同实现,对象会被不同的方法排序.详细介绍请看java中的排序对象. 本文例子是,完成一个简单地购物车,两种付款策略可供选择,一为信用卡,另