class A{
int x= 30;
void printA(){
Sysout(x);
}
}
class B extends A{
int x= 40;
}
class MyMain(){
public static void main(String args[]){
B obj = new B();
obj.printA(){
}
}
B是A的子类。 输出为什么会是30?它应该是40? B的对象应该具有x的值为40.而sysout(x)表示this.x
答案 0 :(得分:1)
您正在调用引用A.x的打印而不是B.x.您应该尝试覆盖B
中的printA答案 1 :(得分:0)
即使您使用B调用该方法,它也会从A执行方法,因为它具有访问权限。并且您正在使用该方法中的A类变量。
sysout(x)表示this.x
是的,在您的情况下,这意味着A,因为您没有覆盖该方法。