java继承中子类调用父类方法操作的变量是子类的变量还是父类的变量?

输出结果

为什么super.x输出是12?父类的x没有被修改啊?a.hh()的输出可以证明

如果是操作的被隐藏的变量或者方法呢,改变的又是谁?

super.x输出的12由于在B中的G方法调用了父类的属性,所以为12,
a.hh,这个是另一个对象,和b对象没有任何关系,刚才的12是由对象b的g方法调用其父类的属性算出来的追问

到底x=x+2修改的是谁的x?

追答

修改的是当前对象的父类的值,明白了么?对象和对象是独立的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-03
因为你在B中没有定义变量 是直接使用A中的x作为变量 所以值改变了 是12追问

x是继承过来的,改变的只是这个继承的值,父类的x不会被修改

追答

是继承过来的 但x是按值传递的

第2个回答  2014-01-03

追问

到底x=x+2修改的是谁的x?

追答

修改的是B中A的那部分

本回答被提问者采纳
相似回答