我有一个父类和子类,如下所示:
public class Parent {
public int values_ = 0;
public void setValue(int v)
{
this.values_ = v;
}
}
并添加以下子类:
public class Child extends Parent {
public double key = 3;
}
我希望获得一个儿童列表,其中每个孩子在子列表中将具有父对象列表中每个父对象的属性。
我尝试了以下内容:
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Parent> parentList = new ArrayList<Parent>();
Parent p1 = new Parent();
p1.setValue(10);
parentList.add(p1);
Parent p2 = new Parent();
p1.setValue(20);
parentList.add(p2);
ArrayList<Child> childrenList = new ArrayList<Child>();
for(Parent p : parentList)
{
Child c = new Child();
System.out.println(c.values_);
System.out.println(c.key);
childrenList.add(c);
}
}
}
但是它不起作用。 我的孩子仍然具有父级的默认值,而不是设置的值。
我该如何处理?
for
循环中,您从未使用Parent p
变量。您如何期望c
有一个值,而您又没有从p
传递它呢? - Luiggi MendozaChild
类中,您可能需要实现一个复制构造函数:Child(Parent p) { this.setValue(p.getValue());}
- Nowhere Man