这里写ArrayList或者List有什么区别吗?

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

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

1回答
好帮手慕小蓝 2022-05-04 17:58:11

同学你好~

1.List是接口名,接口是无法创建对象的,所以List仅可以用在声明变量上,使用多态的形式创建实现类对象。

2.ArrayList是List接口的实现类。

综上,同学代码中使用List作为引用类型时是多态的语法,使用ArrayList是一般对象创建的语法,区别在于后续代码维护时,多态形式更利于代码的维护。

祝学习愉快~


  • 提问者 ZZ6459418 #1
    package notice;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    public class NoticeText {
        public static void main(String[] args) {
            Notice notice1 =new Notice(1,"欢迎来到慕课网!","管理员",new Date());
            Notice notice2 =new Notice(2,"请同学们按时提交作业!","老师",new Date());
            Notice notice3 =new Notice(3,"考勤通知!","老师",new Date());
            List noticeList =new ArrayList();
            noticeList.add(notice1);
            noticeList.add(notice2);
            noticeList.add(notice3);
            System.out.println("***********即将开始显示公告内容**************");
            for(int i = 0;i<noticeList.size(); i++){
               String sout=(i+1)+":"+ ((Notice)(noticeList.get(i))).getTitle();
                System.out.println(sout);
            }
        }
    }

    https://img1.sycdn.imooc.com//climg/62724e77096ff49c03970183.jpg

    我这里改为List并导包之后也并没有报错这是为什么?

    2022-05-04 18:00:10
  • 好帮手慕小蓝 回复 提问者 ZZ6459418 #2

    同学你好,如上文所说,这里是多态的使用方式,即“父类数据类型 变量名 = new 子类/实现类对象”的形式。

    List是父接口的名字,ArrayList是实现类名,符合多态的语法,不会报错。

    祝学习愉快~


    2022-05-04 18:05:15
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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