这两个有什么区别吗

这两个有什么区别吗


ArrayList list=new ArrayList();
List a=new ArrayList();


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小脸 2020-12-16 11:58:58

同学你好,

1、List 不是ArrayList的父类吗? 类不应该继承父类 接口继承父接口,类也能继承接口吗?

答:1)是的

    ​  2)是不可以,这里老师所描述的是ArrayList 继承并实现了List,即ArrayList继承AbstractList之后实现List接口

http://img1.sycdn.imooc.com//climg/5fd983d309f3e18908860184.jpg

http://img1.sycdn.imooc.com//climg/5fd983da0933fac710330239.jpg

2、上溯是什么意思 向上转型?

答:是的,理解是正确的

3、List list=new ArrayList(); 这样写的好处是什么?

答:实现List接口的不只是Arrarlist,还有LinkedList

假如我们new的是一个LinkedList对象,这时候也可以用List 接收。而不用再去修改前边的ArraryList。降低了代码的耦合性,其次这在以后的开发中也是非常常用的一种形式!

好帮手慕小脸 2020-12-16 11:28:35

同学你好,List是一个接口,而ArrayList 是一个类,ArrayList 继承并实现了List。

List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。

而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。

  • 提问者 一娆Hacker #1

    1、List 不是ArrayList的父类吗? 类不应该继承父类 接口继承父接口,类也能继承接口吗?

    2、上溯是什么意思 向上转型?

    3、有些ArrayList有但是List没有的属性和方法,它就不能再用了。

    ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。

    既然这样 为什么不写ArrayList list=new ArrayList();

    老师说通用写List list=new ArrayList(); 这样写的好处是什么

    2020-12-16 11:31:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师