0
我是java新手,正在閱讀有關動態調度的知識。我嘗試了它的程序,但是我得到的輸出是意想不到的。所以在下面的代碼中,我創建了兩個類一個Parent和另一個Child,並且在Child類中我創建了Child類的對象,並通過Parent類的變量引用它。當我使用該變量來打印i的值(這兩個類的int類型實例變量)時,我得到了父類的值,但它應該打印子類中的i的值。任何人都可以請清楚嗎?爲什麼父類的值是可變的顯示爲輸出
`
class Parent
{
int i=10;
}
class Child extends Parent
{
int i=20;
public static void main(String ar[])
{
Parent obj= new Child();
System.out.println(obj.i);
}
}
`
這是正常的,它應該打印父值,如果該行'父的obj =新的Child();'被更改爲'Child obj = new Child()'這行''它會打印20個(根據我的測試)。 –
但是它背後的原因是什麼 –