A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public static void main(String[] args) {
                List li = new ArrayList();                //创建list对象,list是接口,父类引用子类对象
                li.add(new Student("张三", 21));               
                li.add(new Student("李四", 21));               
                li.add(new Student("王五", 21));               
                li.add(new Student("张三", 21));               
        }

7 个回复

正序浏览
bolt 中级黑马 2016-2-11 00:07:00
8#
学了泛型再来解决这个问题吧
回复 使用道具 举报
hardeas 发表于 2016-2-10 09:41
因为list是泛型接口,接入的数据也为泛型,因为你没有指定泛型类型,就默认为Object 了 ...

不对  因为add方法是这样的  add(Object obj)  所以进来的new Student()被obj接收
回复 使用道具 举报 1 0
因为list<T>是泛型接口,接入的数据也为泛型,因为你没有指定泛型类型,就默认为Object 了

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
list.add(Object b);  所以添加的是 Object b = new Student 所以是自动提升为Object类了
回复 使用道具 举报
因为add方法里面接收的是泛型限定类,如果没有加泛型你可以理解为是接收的是object,这就是多态了

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
549208564 发表于 2016-1-5 13:13
因为不知道你会加入到哪个类中,可以用泛型

还没有学泛型
回复 使用道具 举报
因为不知道你会加入到哪个类中,可以用泛型
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马