簡體   English   中英

如何在java中聲明可以存儲超類和子類對象的數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM