Rozważmy następujące klasy:Czy obiekt dziecko straci swoje unikalne właściwości po odlaniu iz powrotem między klasą dominującą
public class Phone {
private boolean has3g;
public boolean has3g() {
return has3g;
}
public void setHas3g(boolean newVal) {
has3g = newVal;
}
}
public class Blackberry extends Phone {
private boolean hasKeyboard;
public boolean hasKeyboard() {
return hasKeyboard;
}
public void setHasKeyboard(boolean newVal) {
hasKeyboard = newVal;
}
}
Gdybym miał stworzyć instancję Blackberry
, wrzucił je do Phone
obiektu, a następnie oddać go z powrotem do Blackberry
, czy oryginalny obiekt Blackberry
straciłby swoje zmienne składowe? Np:
Blackbery blackbery = new Blackberry();
blackbery.setHasKeyboard(true);
Phone phone = (Phone)blackbery;
Blackberry blackberry2 = (Blackberry)phone;
// would blackberry2 still contain its original hasKeyboard value?
boolean hasKeyBoard = blackberry2.hasKeyboard();
Czy próbowałeś? Co się stało, kiedy to zrobiłeś? – Kal
Zrobiłem to i zadziałało dobrze –