OC 组合实现多继承

OC无法完全先C++使用多继承,但可以采用组合的模式来代替继承模式。(协议实现)
实现多继承的代码:
举例现在ClassC需要继承ClassA中methodA、ClassB中methodB,具体的代码为:

//定义ClassA以及其methodA

@interface ClassA : NSObject {
}

-(void)methodA;

@end
//定义ClassB以及其methodB
@interface ClassB : NSObject {
}

-(void)methodB;

@end
//定义ClassC以及其需要的methodA,methodB
@interface ClassC : NSObject {
ClassA *a;
ClassB *b;
}

-(id)initWithA:(ClassA *)A b:(ClassB *)B;

-(void)methodA;
-(void)methodB;

@end
//注意在ClassC的实现
@implementation ClassC
-(id)initWithA:(ClassA *)A b:(ClassB *)B{
a=[[ClassA alloc] initWithClassA: A];//[A copy];
b=[[ClassB alloc] initWithClassB: B];//[B copy];

}
-(void)methodA{
[a methodA];

}
-(void)methodB{
[b methodB];

}
posted @ 2016-08-31 16:12  M·emor·Y  阅读(1124)  评论(0编辑  收藏  举报