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

来源:4-6 学生选课—课程查询

某向阳

2017-04-03 13:44

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

写回答 关注

2回答

  • 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


    Gir非碼農 回复某向阳

    简单地说就是你说的和老师说的,都可以。但是老师的想法呢,可扩展性更强。List是个接口嘛,接哪个集合都可以,要是换成ArrayList就只是这一个集合了

    2017-04-09 23:41:43

    共 2 条回复 >

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

    List是个集合接口

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题