如何在java中声明可以存储超类和子类对象的数组?
我试图弄清楚如何创建一个数组来存储超类和子类对象如何在java中声明可以存储超类和子类对象的数组?,java,arrays,Java,Arrays,我试图弄清楚如何创建一个数组来存储超类和子类对象 Book[] books = new Book[10] 我必须使用关键字super还是sub?请澄清我的疑问 谢谢让我们假设Book是您的超级类,然后您的子类是-> Class SuspenseBook extends Book { //code... } 现在你的阵型 Book[] books = new Book[10] 可以存储书籍对象以及电子书对象 如果有帮助,请告诉我。是的,您可以将子类对象存储在对象的超类数组中。 假设您有
Book[] books = new Book[10]
我必须使用关键字super还是sub?请澄清我的疑问
谢谢让我们假设Book是您的超级类,然后您的子类是->
Class SuspenseBook extends Book {
//code...
}
现在你的阵型
Book[] books = new Book[10]
可以存储书籍对象以及电子书对象
如果有帮助,请告诉我。是的,您可以将子类对象存储在对象的超类数组中。 假设您有以下代码:
class Animal {
void saySomething() {System.out.print(" Hummmmm!");}
}
class Cow extends Animal {
protected void saySomething() {System.out.print(" oMooo!");}
}
public class test {
public static void main(String [] args) {
System.out.print(" MooYa!");
Animal [] animals = {new Animal(), new Cow()};
for( Animal a : animals) {
a.saySomething();
}
}
}
这段特定的代码在第11行有Animal[]animals={new Animal(),new Cow()}
。
此代码将创建一个超类类型的数组(即Animal
),并将初始化两个对象-一个超类和一个要存储在数组中的子类。
现在,由于子类Cow
继承了超类Animal
,因此将Cow
类对象添加到超类数组可以重新编写为:
动物=新奶牛()代码>
这就是多态性,超类引用变量可用于存储子类对象的地址。简而言之,超类可以采用子类的形式(图书定义)
**因此,为了回答您的问题,您可以将子类对象存储在超类数组中。如果您有Book
的子类,您可以将它们放在Book
数组中。因此,在示例数组-Book
中,您希望存储Book
的超类以及子类吗?Book
的子类可以放在该数组中。请将代码格式化为代码块,不带行号,并使用单间距和语法突出显示。这可以通过将其缩进4个空格来实现。