【发布时间】:2015-03-26 02:34:18
【问题描述】:
我正在尝试找出一种很好的方法来迭代并打印出我的 ArrayList 中的对象。
问题是我似乎无法到达用户输入对象信息的字段(例如颜色和品牌)。
对象的新实例如下所示:
Vehicle C = new Car(4, "Blue", "Honda");
Car(以及其他类,如 Bike、Bus 等)是 Vehicle 的子类。
车辆类:
public class Vehicle {
public int pass = 0;
public int cost = 0;
public int size = 0;
public String brand = "";
public String color = "";
public Vehicle(){}
}
汽车类:
public class Car extends Vehicle{
// constructor
public Car(int passengers, String col, String brandOfVehicle){
if (passengers < 0 || passengers > 4){
throw new IllegalArgumentException();
}else
pass = passengers;
cost += pass*15 + 100;
size = 5;
color = col;
brand = brandOfVehicle;
}
} 尝试迭代对象时:
Iterator<Object> it = Ferry.iterator();
while(it.hasNext()){
Object i = it.next();
System.out.println(i + " ");
}
当迭代对象时,我想像在 i.color 中一样访问颜色和品牌字符串。但我猜测,由于 i 是一个新对象,它可能无法访问与 Car、Bus 等相关的字段和方法?
有没有办法解决这个问题?或者这可能不是真正的问题?
【问题讨论】:
-
可能值得注意的是,我所有的对象都被放入了一个名为 Ferry 的 ArrayList 中
标签: java oop object iteration superclass