黑马程序员技术交流社区

标题: id类型变量能用点语法么 [打印本页]

作者: WANGJIAO    时间: 2014-11-8 19:52
标题: id类型变量能用点语法么


视频中说能用如图:

习题中说不能用如图:




给个准话,到底能不能用

作者: WANGJIAO    时间: 2014-11-8 20:01

试了下,果然不能用,老师视频讲错咯

作者: WANGJIAO    时间: 2014-11-8 20:04
不用管我,就让我一个人纠结吧{:3_60:}
作者: yuanlingqi    时间: 2014-11-8 20:10
id类型是所有类的祖宗,是非确定类型的类,你使用.语法是访问不到确定类的属性和方法的。只有明确是哪个类的对象才能使用点语法访问方法和属性

作者: doudou33420    时间: 2014-11-9 07:29
本帖最后由 doudou33420 于 2014-11-9 07:31 编辑

是这样的
id是所有对象的父类
父类接受子类的对象 形成了多态         ------------id abc = [person alloc]init]
多态是不支持父类调用子类方法的
所以 id.age 这样是在调用一个没有的方法
如果id里本身就有setAge 和(get)age方法的话  是可以这么用的
作者: WANGJIAO    时间: 2014-11-9 21:49
doudou33420 发表于 2014-11-9 07:29
是这样的
id是所有对象的父类
父类接受子类的对象 形成了多态         ------------id abc = init]

原来如此,谢谢~
作者: 米匠    时间: 2014-11-29 17:43
doudou33420 发表于 2014-11-9 07:29
是这样的
id是所有对象的父类
父类接受子类的对象 形成了多态         ------------id abc = init]

那为什么视频中 [id对象 setAge:10]
可以用呢?




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