目前,我想知道是否有办法将子类对象添加到父类数组。
我的代码遵循以下通用行:
public abstract class Parent {
...
}
public class Child extends Parent {
...
}
我有一个数组如下:
Parent[] array = new Parent[number];
我希望能够将我的子对象添加到此数组中,如:
array[0] = new Child();
但是每当我这样做时,都会收到一条错误消息,指出它们是不兼容的类型。我知道这可以在ArrayList
中实现,但我想看看是否有可能采用上述格式。有没有办法在没有ArrayList的情况下实现这个目的?
答案 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();