具有 2 个子类构造函数的 Arraylist

Arraylist with 2 constructors from subclasses

我正在尝试使用 Java 创建一个简单的 GUI。我有一个数组列表 像这样执行:

private List<Vehicle> vehicles = new Arraylist<>();

我试图传递一个子class对象,其参数比超级class更多。

我试过转换它并重写 toString 方法,但似乎没有任何效果

我的上司class:

public abstract class Vehicle {
    private int speed; 
    public Vehicle (int speed) {
        this.speed = speed;
    }
}

我的子class是:

public class Car extends Vehicle {
    private int gear; 
    public Car (int speed, int gear) {
        super(speed);
        this.gear = gear;
    }
}

public class Bike extends Vehicle {
    public Bike (int speed) {
        super(speed);
    }
}

我在 class 中实例化,我在其中初始化 Arraylist

Car car = new Car (100, 5);
vehicles.add(car);

我可以毫无问题地初始化 Car。参数已发送,但我得到的结果只是 superclass 的一个实例。我哪里错了?

java 泛型 List<Car> 不是 的 well-known 方面List<Vehicle> 的子类。这就是为什么会有 List<? extends Vehicle>List<? super Car> 等结构的原因。有许多在线资源可以展示如何处理您的情况。例如Generics, Inheritance and Subtypes