2016-05-09 3 views
-2

スーパークラスとサブクラスオブジェクトを格納できる配列を作成する方法を理解しようとしています。スーパークラスとサブクラスオブジェクトをjavaに格納できる配列を宣言する方法は?

Book[] books = new Book[10] 

スーパーまたはサブのキーワードを使用する必要がありますか?疑いを晴らしてください。 >

Class SuspenseBook extends Book { 
//code... 
} 

今すぐあなたの配列、

Book[] books = new Book[10] 

も同様ブックのオブジェクトを格納することができます -

+0

'Book'のサブクラスをお持ちの場合は、それらを' books'配列に入れることができます。 – Kayaman

+0

あなたの例の配列 'books'では' Book'のスーパークラスとサブクラスを保存したいのですか? 'Book'のサブクラスをその配列に入れることができます。 –

答えて

1

がの帳があなたのスーパークラスであると仮定しようと、あなたのサブクラスがあるありがとうSuspenseBookオブジェクトとして。

これが役立つかどうか教えてください。

0

はい、スーパークラスオブジェクトの配列内にサブクラスオブジェクトを格納できます。 は、コードのこの部分を持っているとしましょう:

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)と2つのオブジェクトを初期化するにAnimal[] animals = { new Animal(), new Cow()}持っています - 配列に格納されるスーパークラスの1つとサブクラスの1つ。 すぐサブクラスCowしたがってスーパーアレイにCowクラスオブジェクトを追加スーパーAnimalを継承するためのように書き換えることができる: Animal animals = new Cow(); これは、スーパークラスの参照変数はサブクラスオブジェクトのアドレスを格納するために使用することができる多型です。要するに、スーパークラスはサブクラス(ブック定義)の形式をとることができます。

**したがって、あなたはスーパークラス配列の中にサブクラスオブジェクトを格納することができます。

+0

コードをコードブロックとしてフォーマットしてください。行番号やモノスペースや構文の強調表示はしないでください。これは、4つのスペースでインデントすることで実行できます。 – csander

関連する問題