まあこんにちは、ここに私の問題です。属性を変更するArrayList <Class>をArrayListに<SubClass>サブクラス
abstract class Foo
を与え、場合、私は知りたいのですが、どういうわけか、その属性はArrayList<Bar>
だけに、それはFoo
のすべてのサブクラスに含まれていたものの特定のサブクラスが含まれている(バーがあまりにも抽象的である)を取得することが可能です。例えば
は、具体的なclass FooChild
extends Foo
ことで、属性ArrayList<Bar>
は今だけで、具体的なclass BarChild
(これextends Bar
)が含まれています。具体的には
、私はコードのこの作品だ場合:
public abstract class CharactersGroup {
private ArrayList<Character> characters;
public CharactersGroup() {
this(new ArrayList<Character>());
}
public CharactersGroup(ArrayList<Character> list) {
characters = list;
}
}
をそしてCharactersGroup
のサブクラスでは、このように、HeroesGroup
次のようになります。
public class HeroesGroup extends CharactersGroup {
// Here is an ArrayList<Character> characters, that I would like to "become" an ArrayList<Hero> characters
public HeroesGroup() {
this(new ArrayList<Hero>());
}
public HeroesGroup(ArrayList<Hero> list) {
super(list);
}
}
Character
は同じように次のようになります。
Hero
は次のようになります。
public class Hero extends Character {
private int level;
public Hero(String n, int l) {
super(n);
level = l;
}
}