0

A と B の 2 つのクラスがあります。B は A を拡張します。これで、B で A のオブジェクトの配列リストを作成できます。


public class A {

      // class fields
      // class methods  
}

import java.util.*;

public class B extends A {

List<Object> listname=new ArrayList<Object>();

A obj=new A();
listname.add(obj);
 }

オブジェクトの配列リストを作成できますか? ちなみに、上記のコードはエラーになります!

4

3 に答える 3

4

はい、オブジェクト A の ArrayList を作成できない理由はありません。

しかし、今のやり方ではできません。メソッドで行う必要があります。フィールド宣言でそれをやろうとしています。

コンストラクターに追加してみてください。

だから何か

public B() {
A obj=new A();
listname.add(obj);
}

あるいは、あなたの質問を理解していないだけで、完全に間違っているかもしれません。

于 2012-09-24T02:26:21.400 に答える
2

エラーは、メソッドの外側にコードがあるためです。これを試して:

public class B extends A {

    private static List<Object> listname = new ArrayList<Object>();

    public static void main(String[] args) {
        A obj = new A();
        listname.add(obj);
    }
}
于 2012-09-24T02:27:06.407 に答える
1

メソッドの外でリストに項目を追加する場合は、インスタンス初期化子を使用します。

public class B extends A{
    private List<A> listOfA = new ArrayList<A>();

    {
         listOfA.add(new A());
    }

    public B(){
    }   
}
于 2012-09-24T02:29:04.950 に答える