这个问题很简单,因为Object[] 里面放的是Object对象以及它的子类,什么意思呢?就是所有的对象了,因为所有的对象都是Object的子类,所以Object数组里面可以放Object数组
而String[]里面可以放String对象和String对象所有的子类,但是String对象是没有子类的,所以只能放String对象,而不能放String[]数组。大概就这样了

解决方案 »

  1.   

    Object是所有对象的父类。
    Object[] b = new Object[3];
    b[1] = new Object[3];
    凡是被new出来都是对象。
    所以Object(父类)可以指向任何被new出来的对象(子类)。
    String[] s = new String[3];
    s[1] = new String[3];
    s是一个String类型的数组,所以s[1]是一个String类型的元素。
    new String[3]是一个数组。String类型的元素(s[1]),不能指向数组。
      

  2.   

    感谢@ltp2010和楼上朋友的解答,虽然当时提出这个问题的时候也明白java中所有的对象都是Object的子类对象,但是对于数组类型还是抱着一颗模棱两可的态度。
    刚才去查了文档,确认了Object的确是数组类型的父类:
    Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class
    java把数组也作为一个继承的类型,这点确实有点不同于其他语言。
    再次感谢大家的回答,学习了!