package test1;
class Base{
int count=2;
public void display(){
System.out.println(this.count);
}
}
class Derived extends Base
{
int count=20;
public void display(){
System.out.println(this.count);
}
}
public class Test1 {
public static void main(String []arg)
{
Base a=new Base();
System.out.println(a.count);
a.display();
Derived b=new Derived();
System.out.println(b.count);
b.display();
Base c=new Derived();
System.out.println(c.count);
c.display();
Base d=b;
System.out.println(d.count);
d.display();
}
}
输出
2
2
20
20
2
20
2
20,所以直接通过c访问count,输出的将是父类对象的count实例变量的值;但是,如果通过c来访问display()方法,输出的就是子类对象的值。