gpt4 book ai didi

Java:如何拥有子类类型的数组?

转载 作者:行者123 更新时间:2023-11-30 06:23:50 24 4
gpt4 key购买 nike

假设我有一个父类(super class)“Animal”和子类“Cat”、“Dog”、“Bird”。有没有办法拥有一个子类类型的数组而不是类实例,我可以用它来实例化每个子类的实例可能的子类?

为了简化,我想要这个:

Pseudo code: For each possible subclass of "Animal": create an instance of that class.

我该怎么做?

编辑:我不想要这些子类的实例数组,我想要一个对象类型的数组。

最佳答案

您可以使用多态来实现这一点。

Animal[] animalArray = new Animal[10];
animalArray[0] = new Dog();
animalArray[1] = new Cat();

基本上是动物类的所有子类。当你想检索对象时,你可以简单地将它打字

Dog dog = (Dog)animalArray[0];

要了解类,您可以简单地使用 getClass() 方法。例如

    Animal[] animalArray = new Animal[10];
animalArray[0] = new Dog();
System.out.println(animalArray[0].getClass());

将打印class Dog

关于Java:如何拥有子类类型的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737433/

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