[英]How to declare array that can store superclass and subclass object in java?
我想弄清楚如何創建一個可以存儲超類和子類對象的數組。
Book[] books = new Book[10]
我必須使用關鍵字 super 或 sub 嗎? 請清除我的疑問。
謝謝
讓我們假設 Book 是您的超類,然后您的子類是 ->
Class SuspenseBook extends Book {
//code...
}
現在你的陣列,
Book[] books = new Book[10]
可以存儲 Book 對象以及 SuspenseBook 對象。
如果這有幫助,請告訴我。
是的,您可以將 Subclass 對象存儲在超類對象數組中。 假設你有這段代碼:
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
類對象添加到超類數組可以重寫為: Animal animals = new Cow();
這是多態性,其中超類引用變量可用於存儲子類對象的地址。 簡而言之,超類可以采用子類(書籍定義)的形式。
**因此要回答您的問題,您可以將子類對象存儲在超類數組中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.