A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

wo18201432758

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© wo18201432758 初级黑马   /  2015-9-22 21:44  /  2537 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

21黑马币
继承一个小问题,父类中私有成员变量,不可以被继承对吧,那么我们在new子类对象时候,没有new父类对象啊,那为什么能给父类中的非静态变量赋值呢,
在内存中是什么情况啊?到底存在那片内存区域了?

最佳答案

查看完整内容

首先,我们在new子类对象时候,是不可以继承到父类中私有的元素,单是在我们new子类对象时,父类的私有元素,也是可以访问到的,这里用super 关键字访问,内存中,虽然没有父类私有,单是子类对象有父类的引用,也就是super ,他是单独开辟了一块内存空间的,这个空间应该在堆区,子类拿到super引用,然后在内存中找到了父类的私有元素,所有可以访问 父类中私有 ...

2 个回复

倒序浏览
首先,我们在new子类对象时候,是不可以继承到父类中私有的元素,单是在我们new子类对象时,父类的私有元素,也是可以访问到的,这里用super 关键字访问,内存中,虽然没有父类私有,单是子类对象有父类的引用,也就是super ,他是单独开辟了一块内存空间的,这个空间应该在堆区,子类拿到super引用,然后在内存中找到了父类的私有元素,所有可以访问 父类中私有
回复 使用道具 举报
18201432758 发表于 2015-9-22 21:50
首先,我们在new子类对象时候,是不可以继承到父类中私有的元素,单是在我们new子类对象时,父类的私有元素 ...

恩,好像明白点了,回复那么快,谢谢了,分先给你了,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马