Nun Hallo, hier ist mein Problem.Ändern Attribut ArrayList <Class> zu ArrayList <SubClass> in einer Unterklasse
Ich würde gerne wissen, ob ein abstract class Foo
gegeben, ist es möglich, irgendwie, bekommt ihr Attribut ArrayList<Bar>
(Bar abstrakt zu sein), um nur eine bestimmte Unterklasse enthalten, was es früher in jeder Unterklasse von Foo
enthielt .
Zum Beispiel in einer konkreten class FooChild
dass extends Foo
das Attribut ArrayList<Bar>
würde jetzt nur enthalten konkrete class BarChild
(die extends Bar
).
Genauer gesagt, wenn ich dieses Stück Code bekam:
public abstract class CharactersGroup {
private ArrayList<Character> characters;
public CharactersGroup() {
this(new ArrayList<Character>());
}
public CharactersGroup(ArrayList<Character> list) {
characters = list;
}
}
Und eine Unterklasse von CharactersGroup
wäre HeroesGroup
, wie folgt aus:
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);
}
}
A Character
würde gerne einfach:
Und eine Hero
mögen:
public class Hero extends Character {
private int level;
public Hero(String n, int l) {
super(n);
level = l;
}
}