我有一個父對象將實現的父接口和子接口。我製作了一個子界面,因爲我想要一個特定的VehicleEntity對象,如Truck
將自己添加到Car
的HashMap中。一個Truck
將調用VehicleManager的addToCar()
方法,將Truck對象添加到Car的hashMap中。我遇到的問題是CarEntity ce = ve;
。 Netbeans告訴我要將ve
投給CarEntity,但我不想。不應該代碼行是有效的(假設for循環所查看的對象是一個Car對象)?我怎樣才能解決這個問題?將一個父對象分配給一個子對象而不使用Java進行強制轉換
public interface VehicleEntity {
getId();
getSpeed();
move();
}
public interface CarEntity extends VehicleEntity{
addToCar(String c);
}
public class Car implements CarEntity{
HashMap<String, VehicleEntity> cars = new HashMap<String, VehicleEntity>();
public void addToCar(String c) {
cars.add(c);
}
}
public class VehicleManager {
HashMap<String, VehicleEntity> vehicles = new HashMap<String, VehicleEntity>();
public void reportToCar(String id) {
for (VehicleEntity ve : ve.values()) {
if (ve.getId().equals(id)) {
CarEntity ce = ve; // Issue here
}
}
}
'reportToCar'方法屬於哪個類? –
class VehicleManager – Dan
這裏還有更多的問題......在addToCar中,你可以在HashMap上調用add。沒有這樣的方法。你需要使用'put(String c,Something s)'。那是什麼東西? –