在下面的代码中,有人可以解释一下实际输出背后的原因。
class Main extends A {
int x;
public Main()
{
super(x);
this.x = 1;
}
public void Display(int x)
{
System.out.println("Inside Main: " + x);
}
public static void main(String[] args) {
Main m = new Main();
A a = m;
a.Display(a.x);
Main m1=(Main)a;
m1.Display(m1.x);
}
}
class A
{
int x;
public A()
{
this.x = 2;
}
public void Display(int x)
{
System.out.println("Inside A: " +x);
}
}
我预期的输出 内部主:1 内部Main:1
实际输出
内侧主:2 内部Main:1