由上图,我们有类ClassA、ClassB、ClassC及类中分别有方法a{}、b{}、c{},我们希望通过类C继承A和B,C的对象就可以使用a、b、c方法了。例如:
ClassC *cObject = [[ClassC alloc] init];
由于Objective-C在语法上禁止类使用多继承,所以我们ClassC无法直接继承ClassA和ClassB,但是在协议的遵守上却允许使用多继承。所以我们分享在ClassA和ClassB中定义协议,协议方法分别为a{}、b{},代码如下:
1、ClassA.h内容
@interface ClassA : NSObject
@end
@protocol ClassAProtocol <NSObject>
-(void)a;
@end
2、ClassB.h内容
@interface ClassB : NSObject
@end
@protocol ClassBProtocol <NSObject>
-(void)b;
@end
3、ClassC.h内容(引用ClassAProtocol和ClassBProtocol
此处我只定义一个成员方法c。
而我在ClassC.m中的补充完善ClassAprotocol和ClassBProtocol中的a{}和b{}方法,详见下图
4、当我用ClassC实例如一个对象cObject时,cObject就可以调动a{}和b{}方法,如下图: