黑马程序员技术交流社区

标题: #import ,@class, 继承 ,组合,我有点搞混了,谁来讲讲区... [打印本页]

作者: 云无心ii    时间: 2014-11-23 19:47
标题: #import ,@class, 继承 ,组合,我有点搞混了,谁来讲讲区...
如题,大牛来讲讲区别

作者: 从今以后    时间: 2014-11-23 20:13
比如Person和Student两个类,学生是人,所以为了Person类的一些属性去继承合情合理;但是又比如Book类,学生需要书的属性,让学生去继承书就不合理了,而把书当做一个对象,作为学生的成员,既满足需求也合理,也就是集合。
@class只是一个声明,比如在Student.h里,定义了一个Book *_book变量,只需用@class Book;声明这个Book是个类即可,具体这个类有什么,并不需要考虑。还有一点,@class可以解决两个头文件相互包含的问题。
#import是把.h整个拷贝过来,比如Student继承Person,这时需要明确知道父类里有哪些成员、方法,否则成员重定义都不知道。
简单理解为继承用#import,集合用@class,盲目使用#import将会无谓降低编译效率。
以上是我的理解,希望能帮到你,如果有误啥的还请楼下补充纠正>_<




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