为了账号安全,请及时绑定邮箱和手机立即绑定

子类对象在创建的同时,是否创建了父类对象?或者说申请了多余的内存空间,用于保存不可见的父类属性?

子类对象在创建的同时,是否创建了父类对象?或者说申请了多余的内存空间,用于保存不可见的父类属性?

HUH函数 2018-08-03 10:13:24
最近学习java,学到继承的这一块,突然产生了题目所说的疑惑。例如下面的代码:父类:子类:在实际使用的时候,创建一个Student 的对象 st1,不能访问 name属性,但是却能调用setName(),getName()方法。我的疑惑是,该对象 st1,在创建的时候,系统是否在分配类存空间的时候,同时也分配了一个用于保存name属性的空间,这个空间是隐藏的,不能st1直接使用,但能通过父类的方法进行访问??也就是说这个st1对象,其实是也可以看作一个特殊的父类的对象,特殊之处在于属性不可见?如果不是这样,那么当我,使用了 st1.setName("xxx"); 字符串"xxx",又被保存在什么地方?本来我认为应该是可以这样理解的,这个空间就是隐藏着的父类对象属性,所以在使用 st1.getName(),才能得到对应的值。但是通过网络搜索,发现有不少人也有这样的疑惑?回答问题的人中,有人认为没有创建父类对象,有人认为创建了,我也越来越搞不懂了......有没有大牛能帮忙解下疑惑?万分感激!!同时也希望大家能多多留言,写出自己的看法,大家交流交流,共同进步
查看完整描述

1 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

查看完整回答
反对 回复 2018-08-27
  • 1 回答
  • 0 关注
  • 686 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号