iOS面试题

类别(category)和继承的区别

2016-08-04  本文已影响240人  CoderZb

类别

假设你接到一个大项目:计算两个整数的和,差。

#import <Foundation/Foundation>

@interface Calculate :NSObject

@property  int number1,number2;

- (int) sumNumber1:(int)num1 andNumber2: (int)num2;//加法

- (int) subNumber1:(int)num1 andNumber2: (int)num2; //减法

- (void)print;

@end

几天后,客户需求发生变化,不仅需要加法,减法功能,还要能做到乘除。我们的做法一般是直接在Calculate类中添加乘,除的方法。当然在这里是没有任何问题的。但是在现实的项目中,代码量十分巨大,以及业务逻辑相当复杂的情况下,直接修改之前源代码是冒有很大的风险的!我们现在可以利用分类解决这个问题

#import <Foundation/Foundation>

#import”Calculate”//既然是对原有类的接口的扩展,所以必须包括原始接口

@interface Calculate(MulAndDiv)//告诉编译器这是为Calculate定义的分类名为MulAndDiv

- (int) MulNumber1:(int)num1 andNumber2: (int)num2;//乘法

- (int) DivNumber1:(int)num1 andNumber2: (int)num2; //除法

@end


继承

上一篇 下一篇

猜你喜欢

热点阅读