通过父对象访问子属性

时间:2019-07-02 12:38:08

标签: java oop inheritance

在下面的代码中,有人可以解释一下实际输出背后的原因。

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

0 个答案:

没有答案