老师,List list=new ArrayList();这句话怎么理解?

老师,List list=new ArrayList();这句话怎么理解?

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


因为您在课程里说过,Collection是父接口,List是子接口。Listl  list这句话,list这个参数前面不应该是个类名吗,但是List是个接口名,为什么能存在List list这样的格式?不懂,请老师答疑

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

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

2回答
好帮手慕小班 2020-07-03 11:25:22

同学你好,1、同学的理解有一点点偏差,这里new关键字后面的不是类名,而是类的构造方法-->引用类型   引用变量=new 类的构造方法();

    2、接口可以理解为一种特殊的类,接口不能实例化,但是它可以作为引用类型,通过接口的引用指向了子类(实现类)的对象,这就是一种多态的体现。

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

好帮手慕小脸 2020-07-02 16:49:55

同学你好,这里List是ArrayList的父接口,由父类引用指向子类对象这是多态的体现。即这里的写法是正确的呢

注:这里同学可以去回顾课程《Java多态》哦~

https://class.imooc.com/lesson/989#mid=23480

2、List是一个接口,而ArrayList 是一个类。 ArrayList 继承并实现了List。List list = new ArrayList();这句话表示创建了一个ArrayList的对象后把上溯到了List。

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

  • 提问者 柯菲特 #1
    老师,可能我表达有误,您没理解我的意思。首先,类名.引用变量=new 类名();这个语法应该没有问题吧?我的问题就是:List是一个接口名,并不是一个类名,那么List list=new ArrayList()就不满足我上述的 类名.引用变量=new 类名()这个语法了。老师,请帮忙答疑,万分感谢
    2020-07-02 23:06:34
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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