黑马程序员技术交流社区

标题: 数组父类的问题 [打印本页]

作者: Baiye    时间: 2014-8-24 23:25
标题: 数组父类的问题
Oject[] 类型是 String[] 的父类吗?
ArrayList<Object> 是 ArrayList<String>的父类吗?

作者: java_dream    时间: 2014-8-24 23:43
一、对于数组,可以认为Object[]类型是String[]的父类,如你可以这样:
String[] strs = new String[3];
Object[] objs = strs;
即使这样也容易会引发程序异常,如下面这个例子:
Integer[] ia = new Integer[5];
Number[] na = ia;
//下面代码编译正常,但运行时会引发ArrayStoreException异常
//因为0.5并不是Integer
na[0] = 0.5;

二、但对于泛型相关的集合,ArrayList<Object>不是ArrayList<String>的父类,你不不可以这样:
String[] strs = new String[3];
Object[] objs = strs;//这里将引起编译错误
作者: 奋发吧小白    时间: 2014-8-25 00:20
Object 是所有类的父类;ArrayList<Object> 是 ArrayList<String>这只是 泛型内类型不同!




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