问答详情
源自:4-6 学生选课—课程查询

List course = new ArrayList();为什么用List?

为什么一般老师在视频里用List course = new ArrayList();而不是ArrayList course = new ArrayList();?

提问者:某向阳 2017-04-03 13:44

个回答

  • Gir非碼農
    2017-04-05 10:36:24
    已采纳

    为什么是List list = new ArrayList(),而不直接用ArrayList 

    编程是要面向对象编程,针对抽象(接口),而非具体

     List 是接口,ArrayList是实现

     实现List接口的有ArrayListLinkedListVector等,所以用哪个就直new 一个接口实现这是一种很好的设计模式.

    一个接口有多种实现,这种写法是java面向对象的一种思想,依赖倒置原则,

    即依赖于抽象不依赖于实现(具体)

     给调用者提供的应该是接口或者抽象类,而实现者可以实现或者继承接口或者抽象类来满足调用者,

    这样调用者不必知道实现者怎样操作,实现者也可以根据具体情况去实现,这样去除了耦合。这就是java设计模式的基础思想之一。

     Java语法上,这种方式是使用接口引用指向具体实现,这样大大提高了代码使用的灵活性。

     比如,你若希望用LinkedList的实现来替代ArrayList的话,只需改动一行即可:

      List   list   =   new   LinkedList()

      而程序中的其它部分不需要改动,这样比较灵活,不会失去通用性。

    以上文字来自: https://wenku.baidu.com/view/7c6cda3510661ed9ad51f343.html


  • qq_风动的年华_0
    2017-04-03 14:25:29

    List是个集合接口