字符串数组引用如何存储在对象数组的引用变量中?

问题描述 投票:0回答:1

请查看下面的代码。

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. 为什么语句“结果=名称;”中有错误?
java arrays type-conversion typecasting-operator
1个回答
0
投票

result = name试图将Object数组分配给String数组。您不能将Object分配给声明为String的变量,数组也是如此。您不能将数组分配给声明为其他类型的数组的变量。

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

© www.soinside.com 2019 - 2024. All rights reserved.