据我所知,Object 是 java 中所有类中最超级的类。但是,下面的代码我无法理解。请帮帮我。
Object c = new long[4];
Object d = new int[4];
在 Java 编程语言中,数组是对象(第 4.3.1 节),是动态创建的,并且可以分配给 Object 类型的变量(第 4.3.2 节)。Object 类的所有方法都可以在数组上调用
来自Java 语言规范。
如所写,这应该会给您一个错误,因为您正在重新声明一个名为 c 的变量。但是,以下内容是完全有效的:
Object c = new long[4];
c = new int[4];
正如您所说,这是因为 Object 是 Java 中所有非原始类型的超类。
它可以编译是因为 Java 中的每个数组也是一个对象。
Object
是arrays
Java 中的超类(仅提及数组,因为问题需要如此)。
因此,当您将长数组分配给对象时,它会在内部类型转换为 Object。
对于 int 也是如此。所以最后在这两个语句中,右边的变量是一个对象。但是,您不能同时拥有Object c =
两条线。