黑马程序员技术交流社区

标题: 继承的内存问题 [打印本页]

作者: MasterLHH    时间: 2016-4-12 23:57
标题: 继承的内存问题
如果父类私有了成员变量,子类不能继承,那么子类对象通过set方法赋值,这个值是存储在内存的哪里呢?可能我问得也有点问题,大概的意思就是子类继承了父类set方法来给变量赋值,那么应该也继承了set方法里的this 变量 = 变量 吧?那么这个this是指向谁?
作者: MasterLHH    时间: 2016-4-13 00:01
有大牛来解答一下吗?
作者: yaolv7    时间: 2016-4-13 00:12
谁调用this,this就代表谁,如果子类中有这个变量,就是子类的,如果没有就去父类中找,如果所有父类都没有就报错
作者: MasterLHH    时间: 2016-4-20 00:37
yaolv7 发表于 2016-4-13 00:12
谁调用this,this就代表谁,如果子类中有这个变量,就是子类的,如果没有就去父类中找,如果所有父类都没有就报 ...

请问通过多态,有参构造给成员变量赋值,这个值存在内存图里的哪个地方?
作者: yaolv7    时间: 2016-4-20 00:41
MasterLHH 发表于 2016-4-20 00:37
请问通过多态,有参构造给成员变量赋值,这个值存在内存图里的哪个地方?

new出来的都在堆里
作者: MasterLHH    时间: 2016-4-20 00:46
yaolv7 发表于 2016-4-20 00:41
new出来的都在堆里

我说一下我的想法:首先父类私有了成员变量,然后我通过多态给成员变量赋值,我new的是子类对象,然后我通过set方法给成员变量赋值,那么我这个set的方法赋值给父类的变量?父类有对象吗?父类没有,怎么存这个值?谁存的?子类吗?子类并没有继承父类的私有成员变量
作者: yaolv7    时间: 2016-4-21 20:56
MasterLHH 发表于 2016-4-20 00:46
我说一下我的想法:首先父类私有了成员变量,然后我通过多态给成员变量赋值,我new的是子类对象,然后我通过s ...

我的乖乖 ,注意看视频,堆里有一块是用来放父类的,而且,构造方法有一句隐式的 super();
作者: Love丶cd    时间: 2016-4-21 21:40
this指向的是本类对象,要想调用父类的成员变量以及成员函数要用super关键字。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2