如果我有一个A类,其中包含A类儿童的List
public Class A
{
protected List children = new ArrayList();
...
}
那么在子类B中是否可以拥有另一个类C的子级并创建对A类子列表的引用? A类具有其他类想要使用的方法,例如送孩子去.但是,A类是一般类,B和C更具体.因此,为了使代码的读取更容易并避免大量的类型转换,我希望超类的List能够引用子类的List.
因此,当我更新otherChildren时,子列表也将更新.我想在下面的示例中执行某些操作,但这样做不起作用,也无法进行转换(children =(List< A>)otherChildren).
但无论如何要实现这一目标吗?我真的很想避免所有的类型转换,否则我会得到.
public Class B extends A
{
private List otherChildren = new ArrayList();
public B()
{
children = otherChildren;
...
// Modification of otherChildren will result in the same
// modification in children
}
}
public Class C extends A
{
...
}
解决方法:
您所要做的就是将A类中的子项声明更改为:
protected List extends A> children = new ArrayList();
标签:superclass,java,list,arraylist,subclass
来源: https://codeday.me/bug/20190730/1577439.html