黑马程序员技术交流社区

标题: 如题,下面new Student为什么会提升为Object类呢?该怎么判断? [打印本页]

作者: 窃贼    时间: 2016-1-5 12:16
标题: 如题,下面new Student为什么会提升为Object类呢?该怎么判断?
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));               
        }
作者: 549208564    时间: 2016-1-5 13:13
因为不知道你会加入到哪个类中,可以用泛型
作者: 窃贼    时间: 2016-1-5 15:34
549208564 发表于 2016-1-5 13:13
因为不知道你会加入到哪个类中,可以用泛型

还没有学泛型
作者: 谁的苍茫    时间: 2016-2-10 01:26
因为add方法里面接收的是泛型限定类,如果没有加泛型你可以理解为是接收的是object,这就是多态了
作者: tujiu888    时间: 2016-2-10 09:29
list.add(Object b);  所以添加的是 Object b = new Student 所以是自动提升为Object类了
作者: hardeas    时间: 2016-2-10 09:41
因为list<T>是泛型接口,接入的数据也为泛型,因为你没有指定泛型类型,就默认为Object 了
作者: boboyuwu    时间: 2016-2-10 22:51
hardeas 发表于 2016-2-10 09:41
因为list是泛型接口,接入的数据也为泛型,因为你没有指定泛型类型,就默认为Object 了 ...

不对  因为add方法是这样的  add(Object obj)  所以进来的new Student()被obj接收
作者: bolt    时间: 2016-2-11 00:07
学了泛型再来解决这个问题吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2