简体   繁体   English

实例化扩展 ArrayList 的类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM