objective-C学习笔记:类目

当我们想为一个类增添新功能时,常常会考虑组合与继承. 在objective-C中存在着一个与组合在某些方面类似的特性:类目(category, 有些书也翻译为'分类').

类目与组合一样,都不用通过继承,而对原有类进行了功能的扩展.比如有这么一个类,

@interface Dog

{

  int age;

}

-(void) eat;

-(void) drink;

@end

 

现在通过定义类目增加两个方法:说话和玩球,

@interface Dog (DogMan)

-(void) talk;

-(void) playBall;

@end

定义类目类似于定义类,不同的是类名后不是父类而是类目名称, 冒号也换成了圆括号 .

 

使用类目需注意的事项:

1)类目可以访问原有类的变量,但不能添加变量,如果要添加变量,可以考虑使用继承

2)可以给内建的类创建类目.如

 @interface NSString (NewFeature)

-(void) newFunc;

@end

 给内建的NSString增加了新方法newFunc.

 3)类目可以重载原有类的方法

4)类目可以把@interface部分放在实现文件中,这样类目增加的方法成了私有方法(当然要调用者不知道实现部分的声明才行)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值