在这个程序中
class a
{
int a=25;
public void aa()
{
System.out.println(a);
}
}
class b extends a
{
int a=2;
public static void main(String[] args) {
b x=new b();
x.aa();
}
}
为什么“x.aa()”打印25,为什么不打印2?,背后的原因是什么?
class a
{
int a=25;
public void aa()
{
System.out.println(a);
b();
}
public void b()
{
System.out.println("this should print");
}
}
class b extends a
{
int a=2;
public static void main(String[] args) {
b x=new b();
x.aa();
}
public void b()
{
System.out.println("this should not print");
}
}
如果我们考虑上面的输出,那么上面的 b() 的输出应该再次打印“this should print”,但我们从 sublcas 获得输出“this should not print”
最佳答案
b类继承了A类,所以当你调用x.aa时,它调用的是a类的方法aa。 a 类的成员 a 初始化为 25,因此打印 25。a 类不知道 b 类的成员 a。
关于java - 为什么这个程序打印25? (Java继承),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26458756/