【问题标题】:Adding objects of different types in an Array在数组中添加不同类型的对象
【发布时间】:2016-05-25 10:46:10
【问题描述】:

我有几个关于这段代码的问题:

公共类主类 {

public static void main(String _args[]) {
    // this is a reference variable of type Truck, referring
    // an object of type Truck
    Truck _firstTruck = new Truck("Volvo", "Generic", "blue", 8000, 20);

    // this is a reference variable of type Vehicle, referring
    // an object of type Vehicle
    Vehicle _firstVehicle = new Vehicle("Bicycle", "red");

    // since a Truck is also a Vehicle, we can have 
    // a reference variable of type Vehicle, referring
    // an object of type Truck
    Vehicle _secondVehicle = new Truck("Scania", "unknown", "green", 7000, 30);

    //better yet, we can do this:
    Vehicle _vehicles[] = new Vehicle[3];
    _vehicles[0] = _firstTruck; // a truck is a vehicle
    _vehicles[1] = _firstVehicle;
    _vehicles[2] = _secondVehicle;

    for (int i = 0; i < _vehicles.length; i++) {
        _vehicles[i].increaseSpeedBy();
    }

}

}

我知道数组 _vehicles[] 是 Vehicle 类型的,因此我无法将 Truck 对象添加到数组中,对吧?

 _vehicles[1] = _firstVehicle;
 _vehicles[2] = _secondVehicle;

这两个没问题,因为它们是同一类型(车辆);

_vehicles[0] = _firstTruck;

是错误的行。 所以我会做卡车类型的_vehicles[0]。

Truck _vehicles[0]=new Truck("","","",0,0);

然后添加

_vehicles[0] = _firstTruck;

我的假设好吗?

另外,在老师的笔记中我看到我应该这样做:

_vehicles[0] = new Object();

谁能解释一下?

【问题讨论】:

  • 卡车是车辆的子类,还是不是?这是关键信息。

标签: java arrays extend


【解决方案1】:

数组只能是一种类型。如果卡车不是车辆的子类,您将无法将所有这些对象添加到同一个数组中。但是,如果卡车类“扩展”车辆,您应该能够添加所有这些对象,前提是数组是车辆类型。

【讨论】:

  • 是的,你是对的,我创建了 Vehicle 类和扩展类 Truck and works。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 2014-06-03
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多