你这个相当于A a=new B(),还是A的实例!!!

解决方案 »

  1.   

    为什么方法能实现多态,变量就不行呢?调用方法a.fn()打印的20,是调用的B类中的方法,但是a.x却是10,是A类中的变量,不明白.
    class A
    {
    int x=10;
    void fn()
    {
    System.out.println(x);
    }
    }
    class B extends A
    {
    int x=20;
    void fn()
    {
    System.out.println(x);
    }
    }
    class Test
    {
    public static void main(String []args)
    {
    B b=new B();
                    A a=b;
    System.out.println(a.x);
    a.fn();
    }
    }