以前很早就听说过java是单继承的类结构,即一个类只能继承一个直接父类,并且所有的类都直接或间接继承于java.lang.Object类。对于这一点,一直接受,并且在jdk文档里看到的类继承层次结构也的确是这样。后来,无意中看到一个问题,问数组是不是继承自Object类,这一下还给问糊涂了,因为数组在java里是对象,不过像这种继承结构我还一直未看到呢?后来,写了点代码做了一个小测试,如下:
System.out.println(new int[1].getClass().getName());

发现int型数组的类是:[I 比较奇怪,是吧,并且代码显示:
System.out.println(new int[1].getClass().getSuperClass().getName());

它的直接父类就是java.lang.Object类,即所有类的根类。根据这些,做了一个总结:
第一种情况,当数组元素是基本类型时:
         int [] 对应class [I
         char [] 对应class [C
         byte [] 对应class [B
         short [] 对应class [S
         long [] 对应class [J
         float[] 对应class [F
         double [] 对应class [D
         boolean [] 对应class [Z

第二种情况,当数组元素是对象时:
        统一为 [L java.lang.Object