在Web上搜索後,我還沒有找到關於實例變量在Java內存模型中的位置的確切答案。例如,我們有這樣的代碼(有陰影的變量聲明):Java內存模型中的實例變量
這段代碼的class A {
int var = 1;
void m() {
System.out.println("\'m()\' is called from class A");
}
}
class B extends A {
int var = 5;
void m() {
System.out.println("\'m()\' is called from class B");
}
}
public class Class1 {
public static void main(String args[]) {
A aref = new B();
aref.m();
String s = (aref.var)==1?"A":"B";
System.out.println("\'var\' is called from class " + s);
}
}
輸出是:
'm()' is called from class B
'var' is called from class A
現在的問題是不能繼承在Java中是如何工作的,但其中的Java內存模型這個實例變量駐留?請說出你的答案。
謝謝
你有一些隱藏在繼續。 –
[隱藏實例變量類的一個可能的重複](http://stackoverflow.com/questions/7794621/hiding-instance-variables-of-a-class) – alfasin
「它在堆中」「不,它不是「。 「是的!」 「不,不是。」 「是的!」 「不,不是。」 「看,這不是一個爭論。」 「是的。」 「不,不是!」 「是的。」 「這只是矛盾!」 「不,不是。」 「它是!」 「啊,你只是反駁我。」 「不,我沒有」「你做到了!」 「什麼時候?」 「現在。」 「廢話!」 「這是徒勞的!」 「不,不是。」 – Taylor