2-2两种实例化ArrayList方法的区别

2-2两种实例化ArrayList方法的区别

视频里讲了,可以通过List list = new ArrayList()和ArrayList list = new ArrayList()两种方法来实例化ArrayList对象,两者的区别是什么?

正在回答

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

1回答

List a=new ArrayList();父类的引用a指向了子类的对象,从面向对象的知识我们知道,父类的引用不能调用子类特有的方法。比如父类Animal有一个方法bark(),而子类Cat除了继承bark()方法外,还有自己的eat()方法,如果有这么一条语句Animal animal=new Cat();则animal.eat()方法会出现编译错误。

那么回到List,List有很多子类,比如ArrayList和LinkedList,如果以后不想用ArrayList进行数据存储,而改用LinkedList,则只需要将List a=new ArrayList();改为List a=new LinkedList();就可以了。其他的方法调用都是父类List中的,LinkedList也能用,就不用再修改了。因此将代码写成List a=new ArrayList();是一个好的习惯,可以避免上述问题的出现。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • qq_细竹竿_0 提问者 #1
    如果ArrayList中已经存储的数据还能够通过List a=new LinkedList();改成LinkedList吗?
    2017-03-06 16:55:00
  • qq_细竹竿_0 提问者 #2
    非常感谢!
    2017-03-06 16:56:35
  • 好帮手慕珊 回复 提问者 qq_细竹竿_0 #3
    这里面如果用LinkedList替换ArrayList是整体替换,ArrayList就不存在了,所以也不会涉及到ArrayList中的数据存储到LinkedList的问题。
    2017-03-08 18:40:45
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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