public class Test 
{
public static void main(String[] args)
{
A aa=new A();
aa.print();

A bb=new B();
bb.print();

}
}
class A
{
public void print()
{ System.out.println(this.i);
} public int i=10;
}class B extends A
{ public int i=15;
}
程序运行结果为
10
10显然,bb.print()函数读取的是父类A的实例域i=10,怎么样才能读取子类B的实例域i=15呢?

解决方案 »

  1.   


    class B extends A 
    { public int i=15; 
    public void print()
    {
      System.out.print(this.i);
    }
    } 把父类的方法重写!
      

  2.   

    两个方法
    1个同楼上的,另外一个方法是在Test类里面创建B类对象,B bb=new B();System.out.println(bb.i);
      

  3.   

    在子类里面重写父类的print()方法,就可以调用子类的实例成员变量啦。
      

  4.   

    public class Test{
    public static void main(String[] args){
      A aa=new A();
      aa.print();
      A bb=new B();
      bb.print();
      }
    }class A{
      public int i=10;
      public void print(){
        System.out.println(this.i);
      }
    }class B extends A{
      public int i=15;
    }
      

  5.   

    重写print的方法.
    主要然后通过super 和this等关键字在方法里面来制定调用那个i;
    2楼的就可以