sky*_*ar7 7 java arrays multidimensional-array
我需要知道Java中的哪个类多维数组完全延伸?
当我们分配
Object[] ref=new int[]{1,2,3};
Run Code Online (Sandbox Code Playgroud)
编译器抱怨对象是不同类型的.所以似乎一维数组扩展Object; 我已经知道了.
但是当我们分配时
Object[] ref2=new int[][]{{1,2,3},{4,5,6}};
Run Code Online (Sandbox Code Playgroud)
编译器不会抱怨.所以似乎二维数组扩展Object[].
但是当我打印它的超类名称时:
System.out.println(ref2.getClass().getSuperclass().getName());
Run Code Online (Sandbox Code Playgroud)
我有java.lang.Object.
所以有人能解释这里发生了什么吗?
Thi*_*ilo 13
Java中的多维数组实际上只是一个数组(数组)*的数组.
此外,数组被视为Object的子类.
所以,你int[][]是一个Object[](有组件类型int[]),还有一个Object(因为所有数组都是对象)
一int[]但不是Object[](但它仍然是一个Object).
所以似乎二维数组扩展了Object []
我不确定"extend"是否适用于此.数组在Java类型系统中有一个特殊的位置,与其他对象的工作方式略有不同.二维数组肯定是Object [].但是如果你问的是超类,那么任何一种数组都有的唯一超类就是Object.所有数组都是Cloneable和Serializable.
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |