[英]Instantiate class extending ArrayList
Is it possible to create an instance of a class extending of an ArrayList?是否可以创建扩展 ArrayList 的类的实例?
In the example below, how can I create an instance of class Cars containing all cars data?在下面的示例中,如何创建包含所有汽车数据的类 Cars 的实例? Is it possible this way, or do I have to remove inheritance and add a field in Cars class like --> private List Car listCars?这种方式是否可行,或者我是否必须删除继承并在 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;
}
}
You can extend ArrayList
as it's not a final class and has visible constructors to call.您可以扩展ArrayList
因为它不是最终类并且具有可调用的可见构造函数。 In practice however one should favor composition over inheritance so below would be preferable:然而,在实践中,人们应该更喜欢组合而不是继承,所以下面会更可取:
public class Cars {
private final List<Car> values = new ArrayList<>();
public void add(Car c) {
values.add(c);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.