Если у меня есть класс А, который содержит список детей с классом А, например
public Class A
{
protected List<A> children = new ArrayList<A>();
...
}
Возможно ли в подклассе B иметь своих собственных потомков другого класса C и создать ссылку на список детей в классе A? Класс A имеет методы, которые хотят использовать другие классы, например, отправить своих детей в. Однако класс A является общим классом, а B и C более конкретны. Поэтому, чтобы упростить чтение кода и избежать большого количества типов, я бы хотел, чтобы список суперкласса ссылался на список подклассов.
Поэтому, когда я обновляю otherChildren , список children также будет обновляться. Я хотел бы сделать что-то, как в примере ниже, но это не работает, и это не может быть приведено либо (children = (List ) otherChildren) .
Но есть ли способ достичь этого? Я действительно хотел бы избежать всех типов, которые я получу иначе.
public Class B extends A
{
private List<C> otherChildren = new ArrayList<C>();
public B()
{
children = otherChildren;
...
// Modification of otherChildren will result in the same
// modification in children
}
}
public Class C extends A
{
...
}