Java 为什么父类的值是变量显示为输出
我是java新手,读过关于动态调度的书。我尝试了它的程序,但得到的结果出乎意料。因此,在下面的代码中,我创建了两个类,一个是父类,另一个是子类,在子类中,我创建了Child类的对象,并通过类型为Parent class的变量引用它。当我使用该变量打印两个类的iint类型实例变量的值时,我得到了父类的值,但它应该打印子类中的I的值。谁能把这件事弄清楚吗Java 为什么父类的值是变量显示为输出,java,dynamic-dispatch,Java,Dynamic Dispatch,我是java新手,读过关于动态调度的书。我尝试了它的程序,但得到的结果出乎意料。因此,在下面的代码中,我创建了两个类,一个是父类,另一个是子类,在子类中,我创建了Child类的对象,并通过类型为Parent class的变量引用它。当我使用该变量打印两个类的iint类型实例变量的值时,我得到了父类的值,但它应该打印子类中的I的值。谁能把这件事弄清楚吗 ` class Parent { int i=10; } class Child extends
`
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);
}
}
`
在Java中无法重写变量,请看另一个问题:
正常,如果行父对象=新子对象,则打印父值;已更改为行Child obj=新子对象;根据我的测试,它可以打印20张。但它背后的原因是什么