可能重複:
Hiding instance variables of a class爲什麼運行Poymorphism行爲類變量的變化
我有以下類
AbstractTest
public abstract class AbstractTest {
protected int testVar = 10;
}
測試
public class Test extends AbstractTest {
int testVar = 5;
public static void main(String[] args) {
AbstractTest test = new Test();
System.out.println(test.testVar);//Prints 10
Test secondTest = new Test();
System.out.println(secondTest.testVar);//Prints 5
}
}
爲什麼上述程序打印10
對於第一殼體和5
對於第二種情況雖是同一類即Test()
的對象?
更新:
I am now confused about how memory is allocated to Object and its variables. As instance variable is getting changed based on Class which is behaviour of Static?
更新:1
Every object will have two variables so question of same memory allocation does not comes in to picture. Thanks.
謝謝。這是一個非常明確的解釋。我想現在我清楚地理解爲什麼要定義變量private。 –
你能否請回答更新的問題。提前致謝。 –
我真的不明白你的額外問題。 – assylias