下面的代碼:在構造函數中傳遞接口對象 - 我複製接口對象嗎?
public interface VehicleAbilities {
public void activateHyperDrive();
}
public class Car implements VehicleAbilities {
public void activateHyperDrive() {
fastenSeatBelt();
pressTheRedButton();
}
}
public class Garage {
VehicleAbilities iVehicle;
public Garage(VehicleAbilities aVehicle) {
iVehicle = aVehicle;
}
public void fireUpCars() {
iVehicle.activateHyperDrive();
}
}
public static void main (String[] args) {
Car car = new Car();
Garage garage = new Garage(car);
garage.fireUpCars();
}
我的問題是:是不是activateHyperDrive
在對象同一輛車例如在main
呼籲爲汽車,或者是當it's傳遞給它複製? AFAIK Java只是按值傳遞,那麼複製的對象是不是?有沒有可能出現的問題?謝謝。
引用被複制而不是對象本身 –
所以我沒有在內存中的兩個'汽車'對象? – dan
Java總是[按值傳遞](http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value)。 –