| 这部分视频我今天也才刚看。 
 你可能理解错了(还是可能是我没理解你表达的问题!),他不是想说明字节码、父类之类的东西。
 他是要说明Object类型的引用在接收数组时的一些特别细致的问题。
 
 1首先(Object类型的引用可以接收除“基本数据类型”外的所有类型)。
 2其次(基本数据类型的数组(int[] a1)Object的引用也可以接收)。
 
 int[] a1=new int[3];                Object aObj1=a1;
 //a1是一个基本数据类型数组的引用,根据“2其次”,所以(Object aObj1=a1)没问题。
 
 String[] a4=new String[3];        Object aObj2=a4;
 //a4是一个String类型的数组,根据(1首先),Object aObj2=a4;也没问题。
 
 重点:
 int[][] a3=new int[3][5];        Object[] aObj3=a3;
 //aObj3是一个Object的数组引用,也就是aObj3必须接收的是一个数组。
 //a3是一个二维数组,(可以把a3看成一个一维数组,数组内存的每个元素是数组)。
 //那么aObj3是数组a3也是数组,这点符合
 //但注意aObj3内只能接收Object的元素,而a3内的元素是数组符合(2其次)所以Object[] aObj3=a3;没问题。
 
 
 突然发现一个最重点的问题你没写。。。(就是视频中那个错误的)如:
 
 int[] a1=new int[3];        Object[] aObj5=a1;
 //aObj5是一个Object的数组引用,也就是aObj5必须接收的是一个数组。
 //a1是一个数组引用,但这个数组内的元素类型是int型是基本数组类型,根据(1首先)Object[] aObj5=a1;是错误的。
 //因为aObj5表示的是,我是个Object数组类型,1我是数组,2我数组内的元素类型是Object
 //a1是个数组但,里面元素是int型,Object不能接收。
 
 |