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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,大牛来讲讲区别

1 个回复

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

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马