本帖最后由 王琪 于 2013-12-23 12:20 编辑
我想到了, public class Demo2 { public static void main(String[] args) { int[] arr=new int[]{1,2,3,3,4,4,4,4}; Object obj= arr; for(int i=0;i<((int[])obj).length;i++ ){ System.out.print(((int[])obj)+","); } } } 1.如果对obj直接进行打印的话会输出一个地址,也就是说,arr是保存数组对象的地址, 2.Objeect obj=arr;是创建了一个父类型的句柄接受保存arr的地址, 3.但是父类型没有办法实现得子对象的特殊功能,这里指数组的特性例如 .length(); 4.所以要想实现数组的性质,就必须要进行向下进行转化 5.所以就有了((int[])obj);的数组对象 和真正的((int][])obj) .length();实现方法 >.< |