笑起来露几颗牙为好:java类的继承

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 15:01:10
public class abc
{
int a=1,b,c;
void fuzhi(int b,int c)
{
this.b=b;
this.c=c;
}
public void print()
{
System.out.println(a+"\n"+b+"\n"+c+"\n");
}
}
class abcd extends abc
{
int a=2;
public static void main(String args[])
{
abcd m=new abcd();
m.fuzhi(2,3);
m.print();
}
}
我正在学习java,学到了类的继承这张,我按照书上所说的,当子类定义了一个与
超类成员变量同名的成员变量时,将超类的隐藏,大家看我上面的这个程序,在子类中,我重新定义了一个成员变量,即int a=2;
但为什么在我输出的时候却还是 1,2,3.却不是2,2,3呢,我想不明白!
请赐教

你调用的print语句是父类中的print

其中this.b就是父类中的b

同理,this.c也就是父类中的c

而print打印的是父类中的a b c的值

你的确按照树上说的定义了一个与父类同名的变量a

但是你却没有用到这个字类中的a

所以还是打印1 2 3

明白??

路过,等待高人吧