gpt4 book ai didi

java - String数组引用如何存储在Object数组的引用变量中?

转载 作者:行者123 更新时间:2023-12-01 16:34:07 25 4
gpt4 key购买 nike

请看下面的代码。

class Use
{

public static void main(String[] args)
{
String[] result = new String[2];//{"Hello", "World"}; // compiles and run
Object[] name = result; // compiles and run
// result = name; //CE
System.out.println(result);
System.out.println(name);
}
}

我的理解是Java中的数组是独立的对象,没有父子关系。因此,根据我的说法,“结果”和“名称”是两个完全不同类型的对象(即 String[] 和 Object[])的引用变量,它们没有任何关系。然后

  1. 为什么“Object[] name = result;”语句没有错误?
  2. 为什么语句“result = name;”有错误?
  3. 我知道“Object”和“String”具有父子关系。 “Object[]”和“String[]”之间有什么关系吗?

最佳答案

result = name 正在尝试将对象数组分配给字符串数组。不能将对象分配给声明为字符串的变量,数组也是如此。不能将数组分配给声明为不同类型数组的变量。

Object[] name = result 是合法的,因为所有对象都继承自 Object 类,包括 String。如果您要分配的变量继承或实现了要分配的变量的数据类型,则可以为声明的变量分配不同的数据类型。

为了更好地理解,请查看 Java 语言的文档。它是查看不同类之间关系的重要资源。

对象类文档:https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

字符串类文档:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

整数类文档:https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html

关于java - String数组引用如何存储在Object数组的引用变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61996028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com