方法重载的声明问题
class SuperClass
{
int y=1;
int z =2;
int x;
void setF( )
{
y=0;
System.out.println("Super的变量x的值"+y);
}
}
class SubClass extends SuperClass
{
int x;//隐藏了父类的变量x
void setF( )
{ //重写了父类的方法 setF()
x =6;
System.out.println("Son的变量x的值"+x);
}
}
class TEST
{
public static void main(String args[])
{
SubClass Son = new SubClass ();
Son.setF();
SuperClass Father= new SubClass ();
Father.setF();
}
}
结果是:Son的变量x的值6;
Son的变量x的值6;
为什么我声明Father对象的时候,可以是前面为SuperClass 后面却是new SubClass 而且不出错。那岂不是我前面那个SuperClass的声明根本就没起到作用?