是否可以创建ArrayList扩展类的实例?
在下面的示例中,如何创建包含所有car数据的Cars类的实例?有可能这样吗,还是我必须删除继承并在Cars类中添加-> private List Car listCars之类的字段?
public class Cars extends ArrayList<Car>{
public Cars() {}
}
public class Car {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
答案 0 :(得分:3)
您可以扩展ArrayList
,因为它不是最终类,并且可以调用可见的构造函数。但实际上,最好使用以下一种should favor composition over inheritance:
public class Cars {
private final List<Car> values = new ArrayList<>();
public void add(Car c) {
values.add(c);
}
}