Java基础-集合(一)

集合基础知识

1、Java的集合类主要由三个接口派生派生而来,即Collection接口、Iterator接口和Map接口

我们通过一行代码分析一下集合的知识点:

import java.util.ArrayList;
import java.util.List;

public class test{
    public static void main(String[] args){
    
    List list = new ArrayList();
    }
}

问题1:为什么不用ArrayList list = new ArrayList()

答:一个接口可以有多个方法,且这些方法的方法名是相同的,这些同名的方法在实现了接口的实现类中定义,比如,ArrayList就是List的一个实现类,LinkedList也是,但是两个实现类中的同名的方法具有不同的内容,这其实就是Java多态的一种表现(允许不同类的对象对同一函数调用作出反应,即同一方法可以根据不同的对象的调用返回不同的内容)。这样做有什么好处呢,可以先看看问题2:为什么要使用接口。另外,list只能使用ArrayList里面已经实现的List接口中的方法,而ArrayList自己的方法,以及没有在List接口中定义的方法不能使用。

问题2:为什么要使用接口

答:
1)规范化:项目很大的时候需要架构师对项目进行统一管理,定义统一规范的接口可以让别人很容易明白
2)扩展性:如果只是使用类来进行项目开发,比如定义了一个汽车类,开发后期需要对类进行修改或者丢弃,那么其他引用了这个类的地方就要全部修改,工程量很大。如果使用接口的话,比如以上的List list = new ArrayList(),ArrayList实现了接口list,ArrayList类中也实现了方法,只需要通过接口声明的一个list来调用方法即可,当不需要这个类时,只需要将实现类换成其它实现类即可,其它地方无需更改。
3)安全性:接口只描述对外的服务,不涉及具体实现。

问题3:实现类需要实现接口中的所有方法吗?

答:不一定,如果实现类是非抽象类的话,那么需要实现所有的方法;如果实现类是抽象类,那么可以不实现所有方法,因为抽象类允许有抽象方法。ArrayList必须实现List的所有方法,LinkedList也必须实现List的所有方法,但是方法的具体实现可以不同。

猜你喜欢

转载自www.cnblogs.com/xushun/p/11113596.html