您的位置:首页 > 其它

OC学习:OC中实现多继承

2015-08-07 17:59 387 查看
第一种非协议:将classA类和classB类作为classC类中的属性。

在classC中

#import <Foundation/Foundation.h>

#import "ClassA.h"

#import "ClassB.h"

@interface ClassC : NSObject

@property (nonatomic,strong) ClassA *aClass;

@property (nonatomic,strong) ClassB *bClass;

-(id) init;

@end

#import "ClassC.h"

@implementation ClassC

@synthesize aClass =_classA,bClass = _classB;

//重新初始化方法,给类属性添加对象

-(id) init{

if (self = [super init]) {

self.aClass = [ClassA new];

self.bClass = [ClassB new];

}

return self;

}

@end

第二种协议:在OC中用协议实现多继承

1.建立CLassA 类

#import <Foundation/Foundation.h>

@interface ClassA : NSObject

@property (nonatomic,assign) NSInteger ID;

@end

//在ClassA.h文件中定下协议

@protocol ClassAProtocol <NSObject>

//在ClassB.h中定义属性

@property (nonatomic,strong) ClassA *aClass;

@end

2.建立CLassB 类

#import <Foundation/Foundation.h>

@interface ClassB : NSObject

//在ClassB.h中定义属性

@property (nonatomic,strong) NSString *name;

@end

//在ClassB.h中定下协议ClassBProtocol

@protocol ClassBProtocol <NSObject>

@property (nonatomic,strong) ClassB *bClass;

@end

3.建立CLassC 类

#import <Foundation/Foundation.h>

#import "ClassA.h"

#import "ClassB.h"

//在ClassC 中实现协议

@interface ClassC : NSObject <ClassAProtocol,ClassBProtocol>

-(id) init;

@end

#import "ClassC.h"

//在ClassC.m文件中实现协议方法

@implementation ClassC

@synthesize aClass =_classA,bClass = _classB;

//重新初始化方法,给类属性添加对象

-(id) init{

if (self = [super init]) {

self.aClass = [ClassA new];

self.bClass = [ClassB new];

}

return self;

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: