继承引用实例变量

时间:2017-10-12 09:27:01

标签: java

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

2 个答案:

答案 0 :(得分:1)

您正在调用引用A.x的打印而不是B.x.您应该尝试覆盖B

中的printA

答案 1 :(得分:0)

即使您使用B调用该方法,它也会从A执行方法,因为它具有访问权限。并且您正在使用该方法中的A类变量。

  

sysout(x)表示this.x

是的,在您的情况下,这意味着A,因为您没有覆盖该方法。