JAVA中的继承问题

为什么34行是b.i输出是456,而同样调用g(b)中有b.i,输出的却是123?还有到底什么叫做变量不能被重写?看了半天也理解不了.... 为什么34行是b.i输出是456,而同样调用g(b)中有b.i,输出的却是123?还有到底什么叫做变量不能被重写?看了半天也理解不了. 展开
 我来答
GTA小鸡
高粉答主

2019-08-20 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
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号就好了,我还有些问题想问

谢谢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式