我在一个名为QuantityCatalogue的类中有一个ArrayList,我创建了另一个扩展第一个类的类。(public class Buy extends QuantityCatalogue)。我如何继承我在QuantityCatalogue中创建的ArrayList并在Buy类中使用它? 这是对的吗?
public class Buy extends QuantityCatalogue
{
public Buy(ArrayList<String> items,ArrayList<Integer> quantity)
{
super(items,quantity);
}
}
提前谢谢
答案 0 :(得分:0)
在超类中声明它protected
,然后该变量对子类也是可见的。 public
也是可能的,但可能会为您的用例打开变量范围。如果您的子类位于同一个包中,您也可以使用默认修饰符。
完全不同的选择是提供这样的getter / setter函数:
private ArrayList<String> items;
protected ArrayList<String> getItems() {
return items;
}
protected void setItems(ArrayList<String> items) {
this.items = items;
}
答案 1 :(得分:-1)
在超类中声明一个私有的ArrayList字段,在supeclass中声明一个公共setter方法,并在你的子类中调用这个setter方法来设置字段&#39;值:
public class QuantityCatalogue {
private ArrayList<String> items;
//this method helps us change the value of field items
public void setItems(ArrayList<String> items) {
this.items = items;
}
.....
}
public class Buy extends QuantityCatalogue {
public void someMethod(ArrayList<String> items) {
//call setItems method of superclass
this.setItems(items);
}
}