Java如何将子类添加到数组中

时间:2013-12-18 11:16:43

标签: java arrays

目前,我想知道是否有办法将子类对象添加到父类数组。

我的代码遵循以下通用行:

    public abstract class Parent {  
        ...
    }

    public class Child extends Parent {
        ...
    }

我有一个数组如下:

Parent[] array = new Parent[number];

我希望能够将我的子对象添加到此数组中,如:

array[0] = new Child();

但是每当我这样做时,都会收到一条错误消息,指出它们是不兼容的类型。我知道这可以在ArrayList中实现,但我想看看是否有可能采用上述格式。有没有办法在没有ArrayList的情况下实现这个目的?

3 个答案:

答案 0 :(得分:3)

以下代码编译时没有错误:

public abstract class Parent {

  private static class Child extends Parent {}

  public static void main(String[] args) throws Exception {
    Parent[] array = new Parent[1];
    array[0] = new Child();
  }
}

这与您问题中的代码非常相似。那么也许将我的代码与我的代码进行比较并找出差异?

在Java(以及大多数/所有OO语言)中,这种多态行为是标准的,完全正确。

答案 1 :(得分:0)

尝试这个怎么样:

    enter codepublic abstract class Parent {

  private static class Child extends Parent {}

  public static void main(String[] args) throws Exception {
    Parent[] array = new Parent[1];
    Parent child = new Child();
    array[0] = child;
  }
} here

答案 2 :(得分:0)

创建时只需放入数组大小,一切都可以使用:)

Parent[] array = new Parent[5]; array[0] = new Child();