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

© Tony鱼先森 中级黑马   /  2015-4-20 11:51  /  3298 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Tony鱼先森 于 2015-4-20 13:57 编辑

为什么在@property中合成的属性,在子类不能直接访问啊,不是说自己完全继承了父类吗?

评分

参与人数 1黑马币 +2 收起 理由
hitboomer + 2 新人来学习……

查看全部评分

9 个回复

倒序浏览
丶小千 发表于 2015-4-20 15:32
楼上的说错了,生成的是protected的,不属于私有,子类可以通过对象方法访问,是方法访问,用getter和sette ...

我查过资料了,通过@property合成的是@private作用域,通过显示声明的默认是@protected作用域
回复 使用道具 举报

你看一下吧,从左到右,Person.h、Person.m、Student.h、Student.m


这个断点显示,Student的实例s内是具有_age属性的,但是在类内不能直接访问,但是_higt可以直接访问,因为一个的作用域是private,一个是protected


评分

参与人数 1技术分 +1 收起 理由
Micro + 1 赞一个!

查看全部评分

回复 使用道具 举报
丶小千 发表于 2015-4-20 19:07
我刚试了一下,弄了个Person类,通过@property设置了一个age属性,用Student继承它,学生对象可以使用age ...

看我六楼的回复吧……
回复 使用道具 举报
丶小千 发表于 2015-4-21 11:12
楼主误会我的意思了,我是说可以通过set和get方法访问,并没有说可以直接访问。我又看了一下楼主的问题,我 ...

好吧,讨论问题对于双方都是有好处的,大家共同进步
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马