ArrayList

ArrayList

ArrayList a=new ArratList;
//和下面有什么不同
List a=new 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();是一个好的习惯,可以避免上述问题的出现。

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

  • 瞳劫 提问者 #1
    非常感谢!
    2017-02-02 15:26:44
  • 言简意赅总结一句话是不是:避免了去再次声明一个类的引用,让ArrayList和LinkedList共用一个父类List的引用
    2017-08-16 10:42:19
  • 是的哦~
    2017-08-18 11:35:06
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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