黑马程序员技术交流社区

标题: 【已重置】 [打印本页]

作者: 胡永城    时间: 2013-12-12 21:45
标题: 【已重置】
本帖最后由 胡永城 于 2017-2-21 21:30 编辑

【已重置】
作者: ysunday    时间: 2013-12-12 21:51
是访问权限的问题 私有的成员只能在本类中有效,在别的类中不能访问的。父类的对象可以拿自己的所有东西,但是子类虽然有了父类的实例,但是缺不可拿到父类的私有东西,因为父类说了,这些属性只有父类的对象可以拿到
作者: 胡永城    时间: 2013-12-12 21:56
ysunday 发表于 2013-12-12 21:51
是访问权限的问题 私有的成员只能在本类中有效,在别的类中不能访问的。父类的对象可以拿自己的所有东西, ...

父类对象拿到私有属性也是通过引用拿到对象实体中的,super也是父类引用,两者什么区别?
作者: Faner    时间: 2013-12-12 21:57
虽然我明白什么意思 但是表达不出来   我只能大概说一下我的意思    你说的这个问题属于多态  父类的引用指向子类对象       父类只是个引用   不是个对象      多态自始至终都是子类对象在做变化  ,  如果 你想访问父类的私有成员  你在父类中可以对外暴露public 的方法!!
作者: 胡永城    时间: 2013-12-12 22:07
Faner 发表于 2013-12-12 21:57
虽然我明白什么意思 但是表达不出来   我只能大概说一下我的意思    你说的这个问题属于多态  父类的引用指 ...

子类实例化对象时,的确调用了父类构造函数,创建了父类实例,不过。。。
作者: ysunday    时间: 2013-12-12 22:27
本帖最后由 ysunday 于 2013-12-12 22:29 编辑
胡永城 发表于 2013-12-12 21:56
父类对象拿到私有属性也是通过引用拿到对象实体中的,super也是父类引用,两者什么区别? ...


好像说错了 ,这是个继承的问题,父类私有属性子类是看不到的,所以你是访问不到的。画了个图  你看看吧  也不知道对不对  看不清的话没办法了  实在不会玩论坛

作者: 胡永城    时间: 2013-12-12 22:32
ysunday 发表于 2013-12-12 22:27
好像说错了 ,这是个继承的问题,父类私有属性子类是看不到的,所以你是访问不到的。画了个图  你看看吧  ...

多谢,我理解错了一个概念,父类实例化对象时,会在内存中分配实体空间,引用指向实体空间。而用super时,还没有初始化父类对象(super是在子类中应用的,此时都没有对象实体)。
作者: 胡永城    时间: 2013-12-12 23:28
Faner 发表于 2013-12-12 21:57
虽然我明白什么意思 但是表达不出来   我只能大概说一下我的意思    你说的这个问题属于多态  父类的引用指 ...

多谢啦。




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