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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Object[]和String[]的超类都是Object,Object[]和String[]没有父子关系,然而Object[]转String[]是不合法的,String[]转Object[]却是合法的,略诡异

9 个回复

倒序浏览
。。。。。。。。。。。。。。。。。。。。。。。。。。不懂
回复 使用道具 举报
Object[]和String[]的超类都是Object,Object[]和String[]没有父子关系
这个是不对的
Object[]  其实是一个Object数组,数组里面放的所有东西都是Object
String[] 也是一个数组,数组里面元素都是 String
String 继承于 Object 这个超级类
所以不要把数组和类的概念弄混淆了

这个就是类别大小的问题了
所有类都继承于 Object   String 也是 ,所以 String 是Object类
但是 Object 不光有String   
譬如你定义一个 Class A  这个也是 Object,但是它明显不是String ,怎么能把不是String 的东西转成String 呢?
回复 使用道具 举报
objec[]存的是object对象,也可以用来存String类型的对象,但是String[]只能存String类型的对象,无法存入Object的对象,转型也是一样的
回复 使用道具 举报
徐慧shanghai 发表于 2015-10-10 16:07
Object[]和String[]的超类都是Object,Object[]和String[]没有父子关系
这个是不对的
Object[]  其实是一个 ...

你可以试试
  1.                 System.out.println(String[].class.getSuperclass().getName());
  2.                 System.out.println(Object[].class.getSuperclass().getName());
  3.                 System.out.println(Integer.class.getSuperclass().getName());
复制代码

结果是:
java.lang.Object
java.lang.Object
java.lang.Number


所以任何Object及其子类的数组都是Object的子类
回复 使用道具 举报
didixyy 发表于 2015-10-10 16:30
objec[]存的是object对象,也可以用来存String类型的对象,但是String[]只能存String类型的对象,无法存入O ...

可以看我楼下的回复
回复 使用道具 举报
Synaric 发表于 2015-10-10 17:07
你可以试试
结果是:
java.lang.Object

呵呵,结果当然是这样?要不你想结果是哪样??
String 一定是 Object ,
但是Object 不一定是 String 不是吗?
包含关系不懂?
回复 使用道具 举报
Synaric 中级黑马 2015-10-10 17:16:22
8#
徐慧shanghai 发表于 2015-10-10 17:12
呵呵,结果当然是这样?要不你想结果是哪样??
String 一定是 Object ,
但是Object 不一定是 String 不 ...

你说过:
“这个是不对的..........所以不要把数组和类的概念弄混淆了”



我在反驳你这句话
回复 使用道具 举报
Synaric 中级黑马 2015-10-10 17:19:17
9#
徐慧shanghai 发表于 2015-10-10 17:12
呵呵,结果当然是这样?要不你想结果是哪样??
String 一定是 Object ,
但是Object 不一定是 String 不 ...

或者说您把String[].class和String.class看混了?
回复 使用道具 举报
Synaric 发表于 2015-10-10 17:16
你说过:
“这个是不对的..........所以不要把数组和类的概念弄混淆了”

哦,好吧,这个是有欠缺
我是觉得你理解上出现了混淆,这里面指出一下,当然所有的都是对象,对象都继承于超类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马