具有 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
我正在尝试使用 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