class DuoTai {
public static void main(String[] args)
{
A a = new B();//父类引用指向子类对象
a.f();
System.out.println(a.x);
}
}
class A
{
int x=10;
public static void f()//静态方法
{
System.out.println("A");
}
}
class B extends A
{
int x=20;
public static void f()//静态方法
{
System.out.println("B");
}
}
//静态优先于对象,加载时会先存着,调用也不需要对象,可以直接用类名调用,如A.f()或B.f()
//若建立对象,会调用引用型变量所属的类中的方法,如楼主写的A a=new B(),那么a.f()就调用类A中的f()方法
//在多态中,成员变量的特点是无论编译和运行,都参考引用型变量所属的类,也就是父类 |