JAVA中的继承问题

为什么34行是b.i输出是456,而同样调用g(b)中有b.i,输出的却是123?还有到底什么叫做变量不能被重写?看了半天也理解不了.

B继承了A类,并且又定义了一个变量i,这个变量i隐藏了父类A类的变量i,此时B类的每一个对象b中都有两个属性i:A.i=123以及B.i=456。对于一个B类引用b,使用b.i访问时,访问的是B.i属性,也就是456。
而方法g(A a)的形参是A类引用,将一个B类对象传递到方法g中,在方法g中只能访问这个B类对象的A类部分,因此此时a.i代表的是这个B类对象中的A.i属性,也就是123。追问

嗯嗯嗯,懂了,讲得很清楚
要是您能私信我您的QQ号就好了,我还有些问题想问

谢谢

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答