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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© MasterLHH 中级黑马   /  2016-4-12 23:57  /  606 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果父类私有了成员变量,子类不能继承,那么子类对象通过set方法赋值,这个值是存储在内存的哪里呢?可能我问得也有点问题,大概的意思就是子类继承了父类set方法来给变量赋值,那么应该也继承了set方法里的this 变量 = 变量 吧?那么这个this是指向谁?

7 个回复

倒序浏览
有大牛来解答一下吗?
回复 使用道具 举报
谁调用this,this就代表谁,如果子类中有这个变量,就是子类的,如果没有就去父类中找,如果所有父类都没有就报错
回复 使用道具 举报 1 0
yaolv7 发表于 2016-4-13 00:12
谁调用this,this就代表谁,如果子类中有这个变量,就是子类的,如果没有就去父类中找,如果所有父类都没有就报 ...

请问通过多态,有参构造给成员变量赋值,这个值存在内存图里的哪个地方?
回复 使用道具 举报
MasterLHH 发表于 2016-4-20 00:37
请问通过多态,有参构造给成员变量赋值,这个值存在内存图里的哪个地方?

new出来的都在堆里
回复 使用道具 举报
yaolv7 发表于 2016-4-20 00:41
new出来的都在堆里

我说一下我的想法:首先父类私有了成员变量,然后我通过多态给成员变量赋值,我new的是子类对象,然后我通过set方法给成员变量赋值,那么我这个set的方法赋值给父类的变量?父类有对象吗?父类没有,怎么存这个值?谁存的?子类吗?子类并没有继承父类的私有成员变量
回复 使用道具 举报
yaolv7 中级黑马 2016-4-21 20:56:47
7#
MasterLHH 发表于 2016-4-20 00:46
我说一下我的想法:首先父类私有了成员变量,然后我通过多态给成员变量赋值,我new的是子类对象,然后我通过s ...

我的乖乖 ,注意看视频,堆里有一块是用来放父类的,而且,构造方法有一句隐式的 super();
回复 使用道具 举报
this指向的是本类对象,要想调用父类的成员变量以及成员函数要用super关键字。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马